Before I answer the question in the title, let look at how for loop in Python and C are expressed in human language
Python
v = [1, 2, 3, 4]
for i in v:
print(i)
Human language: there is a variable v assigned a list [1, 2, 3, 4]. Then for each element in v (stored in variable i) is printed.
You can see it's very straight forward.
C
int v[] = {1, 2, 3, 4};
int i = 0;
for(i = 0; i < 4; i++) {
print("%d", v[i]);
}
//for ( init; condition; increment ) {
// statement(s);
//}
Human language: there is a variable v assigned an array {1, 2, 3, 4}. Then, a variable i stores integer 0. Then for i starts with 0 (the initial), when is smaller than 4 (the condition), increase i by one (the increment) and print the value element of v by the index (the statment).
It's longer than Python (of course, C is a low level language). However, the description is still straightforward. It's just added some linking words to ease human mind.
Matlab
for v = [1 2 3 4]
disp(v);
end
By instinct, when you see v = [1 2 3 4], you will say a variable v assigned an array [1 2 3 4]. Guess what? it becomes the iterator when being added to a for loop.
I tried to express this thing in human language that is close to the code but nothing works.
Try 1: for v is assigned to an array, display element of v
Here you can see it doesn't show that v is an iterator. And v has two meanings.
Try 2: for each v in [1 2 3 4], display v
But v is assigned to an array?? We all know equal sign and belong sign are two different things.
There isn't a proper human language description for this one. And you have to remember that = has two meanings:
- assign when not in a for loop
- in when in a for loop
If MathWork read this blog, please use something different than =. You can use in or belongto or iterate.
Now you see how stupid it is.
Top comments (4)
So if "=" is equal "belong to", then how to do assignment in MatLab?
You also use
=for that.wow what a profound and creative way to use
=, absolutely not confusing, counter-intuitive and mistake-prone though, prob to MatLabStay tune for more Matlab profound "feature"