我有一个大矩阵,如果列值包含10个以上的零('0'),则删除matlab中的整个列。
答案 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);