delete zeros from matrix

4 visualizaciones (últimos 30 días)
Maria K
Maria K el 23 de Jul. de 2020
Respondida: Bruno Luong el 23 de Jul. de 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

Respuesta aceptada

Bruno Luong
Bruno Luong el 23 de Jul. de 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

Más respuestas (1)

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

Iniciar sesión para comentar.

Categorías

Más información sobre Numerical Integration and Differential Equations en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by