【发布时间】:2013-07-24 17:41:38
【问题描述】:
我有一个类似这样的矩阵 M:
M = [ 1, 2, 3, 0, 0;
1, 2, 0, 0, 0;
2, 3, 4, 5, 0;
4, 5, 6, 0, 0;
1, 2, 3, 4, 5;
]
我正在尝试获取 A 中每一行的最右侧非零值的列向量,但仅适用于第一列 == 1 的行。
我能够计算行的过滤器:
r = M( :, 1 ) == 1;
> r = [ 1; 1; 0; 0; 1 ]
我有一组“M 中每一行最右边的非零值”的索引:
> c = [ 3, 2, 4, 3, 5 ]
如何将这些组合到 A 的切片中以获得我正在寻找的东西?我正在寻找类似的东西:
A( r, c )
> ans = [ 3; 2; 5 ]
但出于某种原因,这样做会得到一个 3x3 矩阵。
【问题讨论】:
-
您找到解决问题的答案之一了吗?如果是,请检查它旁边的标记。
-
是
A=M?你得到的是 3x3 还是 3x5 矩阵(见我的回答)。
标签: matlab