For loop with a 10000x6

I have a 10000x6 matrix and i need to starters make a for loop which goes through the first column (it has values 1 and 0 in it) and deletes the rows with '0'. I've been battling with this as I just can't get it to work. If you could help with the whole loop.

1 commentaire

Matt J
Matt J le 3 Jan 2018
When you say a "table", do you mean an actual table data type, or do you just mean a 10000x6 matrix, A?

Connectez-vous pour commenter.

Réponses (2)

Andrei Bobrov
Andrei Bobrov le 3 Jan 2018
Modifié(e) : Andrei Bobrov le 3 Jan 2018

1 vote

Let T - your table:
T_out = T(T{:,1} ~= 0,:);

3 commentaires

Stephen23
Stephen23 le 3 Jan 2018
Modifié(e) : Stephen23 le 3 Jan 2018
+1 It is usually more efficient to keep the wanted data.
Matt J
Matt J le 3 Jan 2018
It is usually more efficient to keep the wanted data.
Is it?
Stephen23
Stephen23 le 3 Jan 2018
Modifié(e) : Stephen23 le 6 Jan 2018
@Matt J: It was something that I remember from doing some tests a few years ago, so quite likely depends on the number of elements and probably the MATLAB version. Some test results just now (test script is attached):
Elapsed time is 4.978532 seconds. % removing elements
Elapsed time is 1.840707 seconds. % keeping elements

Connectez-vous pour commenter.

Matt J
Matt J le 3 Jan 2018
Modifié(e) : Matt J le 3 Jan 2018

1 vote

A(A(:,1)==0,:)=[] ;

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by