我正在寻找一个优雅的解决方案来解决 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
如果我尝试检索与in 中的值M
关联的元素,我会得到一个列向量1
I
>> M(I)
ans =
5
6
7
13
[5 7 ; 6 13]
从这个逻辑索引中获取矩阵的最简单方法是什么?
如果我知道 的非零元素的形状I
,我可以在索引后使用重塑,但这不是一般情况。
另外,我知道 MATLAB 中这种类型的索引的默认行为对于非零值I
不形成矩阵的情况强制保持一致性,但我想知道是否有针对这种特殊情况的简单解决方案.