delete zeros from matrix

3 visualizzazioni (ultimi 30 giorni)
Maria K
Maria K il 23 Lug 2020
Risposto: Bruno Luong il 23 Lug 2020
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

Risposta accettata

Bruno Luong
Bruno Luong il 23 Lug 2020
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

Più risposte (1)

madhan ravi
madhan ravi il 23 Lug 2020
p4(:, all(p4 == 0)) = []
  1 Commento
Maria K
Maria K il 23 Lug 2020
Cool answer but I would like to know how to do it with a for loop..

Accedi per commentare.

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by