检查一个矩阵列值,如果0出现超过10次,则删除matlab中的列

时间:2017-01-31 02:22:19

标签: matlab

我有一个大矩阵,如果列值包含10个以上的零('0'),则删除matlab中的整个列。

2 个答案:

答案 0 :(得分:2)

以下是使用sum函数和逻辑运算执行此操作的一种方法(请参阅Find Array Elements That Meet a Condition)。

% Create matrix.
% First, Second and Fourth columns have 20 ones each.
M = ones(20, 4);

% Third column has 20 zeros.
M(:, 3) = 0;

% Delete columns that have more than 10 zeros.
M(:, sum(M == 0, 1) > 10) = [];

答案 1 :(得分:0)

根据this MathWorks discussion,按列查找零元素计数的可接受方式类似于

sum(A == 0, 1);

您可以使用逻辑索引删除大于10的所有列:

A = A(:, sum(A == 0, 1) >= 10);