How do I delete all the columns that have zeros with a for loop? I tried reducing the number of columns by one in every iteration but matlab shows me "index exceeds matrix dimentions".
p4 = [0 0 31 37 43 47; 0 0 19 13 7 3];
grammes = size(p3,1);
sthles = size(p3,2);
for i = 1 : grammes
for j = 1 : sthles
if iszero(p3(i,j)) == 1
p3(:,j) = [];
sthles = sthles - 1
end
end
end

1 件のコメント

Maria K
Maria K 2020 年 7 月 23 日
Thanks on advance!

サインインしてコメントする。

 採用された回答

Bruno Luong
Bruno Luong 2020 年 7 月 23 日

1 投票

Here is how using FOR-LOOP to delete zero column(s)
A = [0 0 31 37 43 47;
0 0 19 13 7 3];
[m,n] = size(A);
for j = n:-1:1 % must loop reversing
deleteflag = true;
for i = 1 : m
if A(i,j) ~= 0
deleteflag = false;
end
end
if deleteflag % only true if the entire column #j contains 0s
A(:,j) = [];
end
end

その他の回答 (1 件)

madhan ravi
madhan ravi 2020 年 7 月 23 日

1 投票

p4(:, all(p4 == 0)) = []

1 件のコメント

Maria K
Maria K 2020 年 7 月 23 日
Cool answer but I would like to know how to do it with a for loop..

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeNumerical Integration and Differential Equations についてさらに検索

質問済み:

2020 年 7 月 23 日

回答済み:

2020 年 7 月 23 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by