2012-06-08 57 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

相關問題