考虑有一个矩阵。从这个矩阵中,我从每一行中选择相同数量的元素。假设矩阵是nxn
,并且从每一行中取m
元素 ( m<n
)。
我将用这个选定的元素构建一个mxm
矩阵。在每一行中,我都放置了取自原始矩阵的元素(当然是相同的行索引)。
实现这一目标的最佳方法是什么?
谢谢
考虑有一个矩阵。从这个矩阵中,我从每一行中选择相同数量的元素。假设矩阵是nxn
,并且从每一行中取m
元素 ( m<n
)。
我将用这个选定的元素构建一个mxm
矩阵。在每一行中,我都放置了取自原始矩阵的元素(当然是相同的行索引)。
实现这一目标的最佳方法是什么?
谢谢
此处说明了实现此目的的一种方法。定义一个数组a
来玩......
a = randi(6,6);
b = a([1 3 5],[2 4 6])
这演示了使用索引向量将行和列从一个矩阵选择到另一个矩阵。这取决于能否指定要用作索引的向量。你也可以写:
c = a(1:2:end,2:2:end)
现在,如果您告诉我们您所说的“最佳方式”是什么意思,我们也可以告诉您!
编辑
所以我再次阅读了这个问题,似乎“最好”是指“最快”。我从不关心测量这种操作的速度,我感兴趣地等待潜伏在这里的一位真正的 Matlab 专家提供比这更聪明的答案。
当然,最快的方法是根本不构建子矩阵,而是对原始矩阵的元素进行操作。我不知道您的算法是否可以适应避免构建子矩阵。