矩阵行操作

时间:2013-07-01 08:35:21

标签: matlab matrix operations

我有一个矩阵A = [1 2 3; 2 5 9; 2 3 4]。现在我想搜索矩阵的所有元素。应检测任何大于8的元素,并删除与该元素相关的整行。 如在该实施例中A(2,3)> 8。因此,在最终输出矩阵中,应删除第2行,输出矩阵为B = [1,2,3; 2,3,4]

2 个答案:

答案 0 :(得分:1)

Shai的答案的反转通常在循环中更快:

B = A( all(A<=8,2), : );

B = A( all(A<9,2), : );

如果你愿意的话。

请注意,对于较新的Matlab版本,此可能不正确(R2012a我认为对具有矩阵删除的循环具有特定的JIT优化)。然而,这是一个更安全的赌注,可能更直观。

答案 1 :(得分:0)

使用逻辑索引和any命令

>> selRowToDelete = any( A > 8, 2 ); % any value on dim 2 (rows)
>> A( selRowToDelete, : ) = []; % remove the rows