Matrix SUB2查找矩阵的所有x和y坐标
我是一个matlab新手,我有一个简单的问题困扰着我 我想知道是否有可能将矩阵的所有下标都转换成线性索引 当使用SUB2IND时,我必须通知dex和y坐标,但我想同时转换所有坐标 我可以使用函数FIND返回两个向量x和y,这样我可以成功地使用SUB2IND,但是FIND只返回非零元素的x和y坐标 有没有一个聪明的方法可以做到这一点 访问矩阵元素时,无需转换,只需使用单个数字\1-D向量即可。例如,给定一个5x5矩阵Matrix SUB2查找矩阵的所有x和y坐标,matrix,matlab,Matrix,Matlab,我是一个matlab新手,我有一个简单的问题困扰着我 我想知道是否有可能将矩阵的所有下标都转换成线性索引 当使用SUB2IND时,我必须通知dex和y坐标,但我想同时转换所有坐标 我可以使用函数FIND返回两个向量x和y,这样我可以成功地使用SUB2IND,但是FIND只返回非零元素的x和y坐标 有没有一个聪明的方法可以做到这一点 访问矩阵元素时,无需转换,只需使用单个数字\1-D向量即可。例如,给定一个5x5矩阵M M=magic(5); 您可以使用M(5,5)或使用M(25)访问最后一个元
M
M=magic(5);
您可以使用M(5,5)
或使用M(25)
访问最后一个元素
类似地,
M(21:25)
将为您提供M(1,5)
,M(2,5)
,…M(5,5)
,如果您希望数组A
的所有元素都作为线性下标,则可以通过以下方式简单实现:
IND = 1:numel(A);
这适用于任何大小或维度的数组
更多信息,包括线性索引和逻辑索引之间的区别。当您使用
find
时,实际上是在使用逻辑索引来获得线性索引。find
函数可用于通过IND=find(A==A)可靠地获得所有线性指数代码>,但这是非常低效的。@horchler它在哪里说“逻辑下标”?@EitanT:问题是指线性索引-这就是重点。natan后来完全重写了他的答案,最初使用的是ones
来获得一组逻辑索引。@horchler啊,没有看到。事实上,我一写答案就改变了这一点。。。这里的人的反应时间是惊人的…我已经删除了这个评论,因为它不再有意义或是有帮助。