我是matlab上的新手,我有一个令我不安的简单问题,
我想知道是否有可能将矩阵的所有下标转换为线性索引。
当使用SUB2IND时,我必须通知de x和y坐标,但我想同时转换所有。
我可以使用函数FIND返回两个向量x和y,这样我就可以成功使用SUB2IND,但是FIND只返回非零元素的x和y坐标。
有一种聪明的方法吗?
答案 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);
可靠地获取所有线性索引,但这非常低效。