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