MATLAB:求多维数组中值的坐标



我有一个三维数组,我希望能够找到一个特定的值并获得三个坐标。

例如,如果我有:

A = [2 4 6; 8 10 12]

A(:,:,2) = [5 7 9; 11 13 15]

,我想找到7的位置,我想得到坐标i = 1 j = 2 k = 2

我已经尝试了find(A == 7)的变化,但我还没有得到任何地方。

谢谢!

您查找的函数是ind2sub:

[i,j,k]=ind2sub(size(A), find(A==7))
i =
     1
j =
     2
k =
     2

可以使用find查找数组中的非零元素,但这需要一些算术运算。来自文档:

[row,col] = find(X, ...)返回对象的行索引和列索引在矩阵x中的非零项时,此语法特别有用处理稀疏矩阵。如果X是N维数组,且N>col包含列的线性下标。例如,对于a5 × 7 × 3的数组X在X(4,2,3)处有一个非零元素,find返回4也就是说,(page 1中的7列)+ (page 1中的7列)第2页)+(第3页2列)= 16.

如果矩阵M有维度a x b x c,则某个值x的索引(i,j,k)为:

[row,col] = find(A==x);
i = row;
j = mod(col,b);
k = ceil(col/b);

相关内容

  • 没有找到相关文章

最新更新