MATLAB:在多维数组中查找值的坐标

发布于 2024-12-03 15:30:36 字数 318 浏览 0 评论 0原文

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

例如,如果我有:

A = [2 4 6; 8 10 12]

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

我想找到 7 在哪里,我想获取坐标 i = 1 j = 2 code> k = 2

我尝试过 find(A == 7) 的变体,但还没有任何进展。

谢谢!

I have a three-dimensional array, and I'd like to be able to find a specific value and get the three coordinates.

For example, if I have:

A = [2 4 6; 8 10 12]

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

and I want to find where 7 is, I'd like to get the coordinates i = 1 j = 2 k = 2

I've tried variations of find(A == 7), but I haven't got anywhere yet.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蓝戈者 2024-12-10 15:30:36

您寻找的函数是ind2sub

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

The function you seek is ind2sub:

[i,j,k]=ind2sub(size(A), find(A==7))
i =
     1
j =
     2
k =
     2
街角卖回忆 2024-12-10 15:30:36

您可以使用 find 来定位数组中的非零元素,但它需要一点算术运算。从文档中:

[row,col] = find(X, ...) 返回行和列的索引
矩阵 X 中的非零项。此语法在以下情况下特别有用:
使用稀疏矩阵。如果X是N维数组且N>
2、col 包含列的线性索引。例如,对于一个
5×7×3 数组 X,在 X(4,2,3) 处有一个非零元素,find 返回 4
行 16 列。即,(第 1 页中的 7 列) + (第 1 页中的 7 列
第 2 页)+(第 3 页中的 2 列)= 16。

如果矩阵 M 的维度为 axbx c,则索引 (i,j,k) 对于某些值 x 是:

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

You can use find to locate nonzero elements in an array, but it requires a little bit of arithmetic. From the documentation:

[row,col] = find(X, ...) returns the row and column indices of the
nonzero entries in the matrix X. This syntax is especially useful when
working with sparse matrices. If X is an N-dimensional array with N >
2, col contains linear indices for the columns. For example, for a
5-by-7-by-3 array X with a nonzero element at X(4,2,3), find returns 4
in row and 16 in col. That is, (7 columns in page 1) + (7 columns in
page 2) + (2 columns in page 3) = 16.

If the matrix M has dimensions a x b x c, then the indices (i,j,k) for some value x are:

[row,col] = find(A==x);
i = row;
j = mod(col,b);
k = ceil(col/b);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文