Reputation: 2176
Is there a matlab equivalent of the "for in" loop in python?
For instance in python, I can iterate through items of a list using the following code:
for c_value in C_VALUES:
Upvotes: 10
Views: 6491
Reputation: 12693
In MATLAB, for
iterates over the columns of a matrix. Pretty much the same as your example, if C_VALUES
were a row.
for val = row_vec
#% stuff in the loop
end
is the MATLAB syntax. val
will take on the values of row_vec
as it iterates. The syntax you will often see (but isn't strictly necessary) is
for ii = 1:length(values)
val = values(ii);
#% stuff in the loop using val
end
Here, 1:length(values)
creates a row vector [1 2 3 ...]
, and ii
can be used to index into values
.
(Note: i
is another common choice, but as soon as you use i
in this type of context where it is assigned a value, you don't get to use it in the imaginary number sense anymore).
Upvotes: 16
Reputation: 1
Building on @tmpearce 's answer, a little trick I've found is to use:
for i = values(:)'
#% i iterates through each element of 'values'
end
The colon operator ensures the array is a column vector, then transposing it gives you a row vector.
Upvotes: 0
Reputation: 31
Please try the following code.
vs = [1 12 123 1234];
for v = vs
disp(v)
end
Upvotes: 3