sub2ind矩阵的所有x和y坐标

时间:2013-06-24 17:20:18

标签: matrix matlab

我是matlab上的新手,我有一个令我不安的简单问题,

我想知道是否有可能将矩阵的所有下标转换为线性索引。

当使用SUB2IND时,我必须通知de x和y坐标,但我想同时转换所有。

我可以使用函数FIND返回两个向量x和y,这样我就可以成功使用SUB2IND,但是FIND只返回非零元素的x和y坐标。

有一种聪明的方法吗?

2 个答案:

答案 0 :(得分:1)

您不需要转换,只需在访问矩阵元素时使用单个数字\ 1-D向量。例如,给定5x5矩阵M

M=magic(5);

您可以使用M(5,5)或使用M(25) ...

访问最后一个元素 同样M(21:25)会为您提供M(1,5)M(2,5),... M(5,5)的信息。

答案 1 :(得分:1)

如果您希望数组A的所有元素都是线性下标,可以通过以下方式完成:

IND = 1:numel(A);

这适用于任何大小或维度数组。

有关array indexing in Matlab的更多内容,包括线性索引和逻辑索引之间的区别。当您使用find时,您实际上使用逻辑索引来获取线性索引。 find函数可用于通过IND = find(A==A);可靠地获取所有线性索引,但这非常低效。