2017-09-20 46 views
1

我想收到[I_1,I_2,...,I_n] = ind2sub(siz,IND)的输出,用于尺寸为siz中定义尺寸的n维阵列。线性指数是​​中的单个值。我知道数组每个维度中元素的数量。但维数是可变的(它是已知的但是可变的)。我想知道如何在可变数量的阵列中接收ind2sub(siz,IND)的输出,因为它需要n数组来接收输出。如何在MATLAB中接收可变数量的函数输出?

实际上,维数是数据集中数据点的属性数量。如果数据集名为x,则维数为size(x,2)

+0

使用动态变量名是不好的,[请阅读我的回答](https://stackoverflow.com/a/32467170/5211833)。你为什么不简单地使用多维数组? – Adriaan

回答

1

要从ind2sub收集任意数量的下标索引,您需要使用cell array而不是个别变量,如I_1I_2等来存储输出。可以capture the comma-separated list output如下,假设你的N维数据在可变x

[indices{1:ndims(x)}] = ind2sub(size(x), IND); 

indices现在将是包含对应于线性指数为每个维下标a 1逐ndims(x)单元阵列在​​。

相关问题