我正在尋找一個優雅的解決方案來解決這個非常簡單的問題。假設我有一個矩陣MATLAB:提取邏輯索引的子矩陣
>> M = magic(5)
M =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
和形式
I =
0 0 0 0 0
0 1 1 0 0
0 1 1 0 0
0 0 0 0 0
0 0 0 0 0
的邏輯變量如果我嘗試檢索的M
關聯1
數值的元素在I
,我得到一個列向量
>> M(I)
ans =
5
6
7
13
從這個邏輯索引中獲得矩陣[5 7 ; 6 13]
的最簡單方法是什麼?
如果我知道I
的非零元素的形狀,我可以在索引後使用重塑,但這不是一般情況。
此外,我知道在MATLAB中這種類型的索引的默認行爲強制執行一致性,其中I
中的非零值不構成矩陣,但我想知道是否存在簡單這個特殊情況的解決方案。
正是我所要回答:-) – 2015-03-17 22:36:34
這不起作用永諾,例如當不對稱時。 – rst 2016-04-05 09:02:05
@RobertStettler如果你的意思是'I'不能隨機產生,這是真的,但看看這個問題我認爲這是一個合理的限制。如果你的意思是別的:我不明白symetry是如何相關的,你可能會舉出一個解決方案失敗的例子嗎? (輸入矩陣,輸出,預期輸出)。 – 2016-04-06 12:34:35