Azzera filtri
Azzera filtri

how to delete a row from a matrix

3 visualizzazioni (ultimi 30 giorni)
nadia nadi
nadia nadi il 25 Ott 2015
Modificato: Stephen23 il 25 Ott 2015
Dear,
I need to delete rows with all zeros from B and corresponding ones from b, where Bx>=b, so I wrote this code but I got error because of the index, can anyone check it for me please and if there is any faster way will be very helpful. Thanks in advance.
Nadia
B=[
1 0 0 0 0 0 0
0 0 0 1 0 0 0
0 0 0 0 0 0 0
0 1 0 1 0 0 0
0 0 0 0 1 1 0
0 1 0 0 0 0 1
0 0 0 0 0 0 0
0 0 0 0 0 0 1
0 0 1 0 0 0 0];
b=ones(size(B,1),1);
for i=1:size(B,1)
while B(i,:)==0
B(i,:)=[]
b(i,:)=[]
end
end
  1 Commento
Jan
Jan il 25 Ott 2015
The error is caused by running the for i loop until the original size of B, but B has been shortend already inside the loop.

Accedi per commentare.

Risposta accettata

Stephen23
Stephen23 il 25 Ott 2015
Modificato: Stephen23 il 25 Ott 2015
When you use vectorized code then this task is simple, and there is no need for complicated loops:
>>B(any(B,2),:)
ans =
1 0 0 0 0 0 0
0 0 0 1 0 0 0
0 1 0 1 0 0 0
0 0 0 0 1 1 0
0 1 0 0 0 0 1
0 0 0 0 0 0 1
0 0 1 0 0 0 0
  1 Commento
nadia nadi
nadia nadi il 25 Ott 2015
Modificato: nadia nadi il 25 Ott 2015
Dear Stephen,
That's great, thanks a lot.
Nadia

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Matrices and Arrays 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