2012-06-08 26 views
0

考虑有矩阵。从这个矩阵中,我从每一行中选择相同数量的元素。让我们说矩阵是nxn,并从每行我m元素(m<n)。在Matlab中建立一个从另一个元素中挑选元素的最快方法是什么?

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

达到此目的的最佳方法是什么?

谢谢

+0

我会说,如果你要传递所有可用的行,那么你得到一个'mxn'矩阵。 – Zeina

回答

4

实现此目的的一种方法如下所示。定义一个数组a玩弄...

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

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

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

现在,如果你告诉我们,你说“的最好方式”是什么意思,我们也许能够告诉你呢!

编辑

所以我再次阅读问题,似乎由“最好的”你的意思是“最快”。我从不担心测量这种操作的速度,我有兴趣等待真正的Matlab专家,他们潜伏在这里,提供比这更明智的答案。

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

+0

没关系!谢谢 – Andry

+0

是的,确切!这可能是有趣的... – Andry

+0

+1提及不包含相同信息的建筑矩阵:) – patrik

相关问题