我正在寻找一个优雅的解决方案来解决这个非常简单的问题。假设我有一个矩阵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