0

我是matlab的新手,我有一个简单的问题让我感到不安,

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

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

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

有没有聪明的方法来做到这一点?

4

2 回答 2

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)

于 2013-06-24T17:33:30.643 回答
1

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

IND = 1:numel(A);

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

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

于 2013-06-24T17:33:45.587 回答