在matlab中的条件中删除矩阵中的行



我的程序创建一个矩阵,其单元格值​​在多行中,在相应的列中是相同的。我想删除一些有0个以上的行。为了澄清,我的矩阵有以下形式,

A=[1 1 1 1 0 1 1 1 1;1 0 0 1 1 11 1 1 1,1 1 1 11 11 0;1 1 1 10 1 1 11 1 0 1 0 0 1 1]

我想删除第一行、第二行和第五行中的所有列,因为数字0是2或者在第三行和第四行中的行的矩阵中留下更多,因为它们在每行中具有0个1。结果应该是以下矩阵:

A=[1 11 11 11 11 10;1 1 1 1 0 1 1 1]

我为您的算法编写了以下代码,但不能正常工作:

% Input Matrix
A = [1 1 1 0 0 1 1 1;1 0 0 1 1  1 1 1; 1 1 1 1 1 1 1 0;1 1 1 1 0 1 1 1;1 1 0 1 0 0 1 1 ];
% find number of rows and cols
[num_rows, num_cols] = size(A);
% Itrate on each row and find rows that have less than 2 zeros
selected_rows = [];
idx = 1;
for i=1:num_rows
num_zero = sum(A(i, 1:end) == 0);
if num_zero < 2
selected_rows(idx) = i;
idx = idx+1;
end
end
% return result matrix
result = [];
for i=1:length(selected_rows)
result = [result; A(selected_rows(i), 1:end)];
end
disp(result)

相关内容

  • 没有找到相关文章

最新更新