While loop for the elements of an array
Afficher commentaires plus anciens
I have an array:
a=[1 1 1 1 1 1 1 10 1 1 1 1 1 1 12 1 1 1 1 3];
I want to make a while loop that does the following
enas=0;
while a(i)==1 %
enas=enas+1;
end
But I don't know how to express it in matlab. Can you help me please?
1 commentaire
Image Analyst
le 27 Mai 2013
It's recommended not to use i (the imaginary variable) as a variable name.
Réponse acceptée
Plus de réponses (1)
Jason Nicholson
le 27 Mai 2013
See the lines below. This will work.
a=[1 1 1 1 1 1 1 10 1 1 1 1 1 1 12 1 1 1 1 3];
i = 1;
enas=0;
while a(i)==1 %
enas=enas+1;
i = i +1;
end
4 commentaires
Giorgos Papakonstantinou
le 27 Mai 2013
Giorgos Papakonstantinou
le 27 Mai 2013
Matt Kindig
le 27 Mai 2013
Modifié(e) : Matt Kindig
le 27 Mai 2013
This should do it:
b = [0, a, 0]; %ensure that ends are not 1
edges = find(b~=1); %location elements that are not 1
spans = diff(edges)-1; %distance between edges is span of 1's
enas = spans(spans~=0) %should output 7 6 4
Giorgos Papakonstantinou
le 28 Mai 2013
Catégories
En savoir plus sur Multidimensional Arrays dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!