0

考虑有一个矩阵。从这个矩阵中,我从每一行中选择相同数量的元素。假设矩阵是nxn,并且从每一行中取m元素 ( m<n)。

我将用这个选定的元素构建一个mxm矩阵。在每一行中,我都放置了取自原始矩阵的元素(当然是相同的行索引)。

实现这一目标的最佳方法是什么?

谢谢

4

1 回答 1

4

此处说明了实现此目的的一种方法。定义一个数组a来玩......

a = randi(6,6);
b = a([1 3 5],[2 4 6])

这演示了使用索引向量将行和列从一个矩阵选择到另一个矩阵。这取决于能否指定要用作索引的向量。你也可以写:

c = a(1:2:end,2:2:end)

现在,如果您告诉我们您所说的“最佳方式”是什么意思,我们也可以告诉您!

编辑

所以我再次阅读了这个问题,似乎“最好”是指“最快”。我从不关心测量这种操作的速度,我感兴趣地等待潜伏在这里的一位真正的 Matlab 专家提供比这更聪明的答案。

当然,最快的方法是根本不构建子矩阵,而是对原始矩阵的元素进行操作。我不知道您的算法是否可以适应避免构建子矩阵。

于 2012-06-08T08:17:29.640 回答