考虑有矩阵。从这个矩阵中,我从每一行中选择相同数量的元素。让我们说矩阵是nxn
,并从每行我m
元素(m<n
)。在Matlab中建立一个从另一个元素中挑选元素的最快方法是什么?
我将用此选定元素构建一个mxm
矩阵。在每一行中,我都把原始矩阵中的元素(当然是相同的行索引)。
达到此目的的最佳方法是什么?
谢谢
考虑有矩阵。从这个矩阵中,我从每一行中选择相同数量的元素。让我们说矩阵是nxn
,并从每行我m
元素(m<n
)。在Matlab中建立一个从另一个元素中挑选元素的最快方法是什么?
我将用此选定元素构建一个mxm
矩阵。在每一行中,我都把原始矩阵中的元素(当然是相同的行索引)。
达到此目的的最佳方法是什么?
谢谢
实现此目的的一种方法如下所示。定义一个数组a
玩弄...
a = randi(6,6);
b = a([1 3 5],[2 4 6])
这表明用于选择行和列从一个矩阵到另一个使用索引向量。这取决于能够指定要用作索引的向量。你也可以写:
c = a(1:2:end,2:2:end)
现在,如果你告诉我们,你说“的最好方式”是什么意思,我们也许能够告诉你呢!
编辑
所以我再次阅读问题,似乎由“最好的”你的意思是“最快”。我从不担心测量这种操作的速度,我有兴趣等待真正的Matlab专家,他们潜伏在这里,提供比这更明智的答案。
当然,最快的方法是根本不构建子矩阵,而是对原始矩阵的元素进行操作。我不知道你的算法是否适合避免构建子矩阵。
我会说,如果你要传递所有可用的行,那么你得到一个'mxn'矩阵。 – Zeina