MATLAB: What is the meaning of this formula

image processing

Hii all, i'm stuck with this formula, i kinda confused and don't understand it. Need help :
W = {W(i)= Img(k,j),i=k*M2+j, 0<=k<=M1, 0<=j<=M2}
the pseudocode says that, it was for converting two dimensional image matrix Img whose size is M1*M2, to a vector W of length M1*M2. But i feel kinda strange, take one example i had an image of M1=2 and M2=2 and i follow above formula it'll return
i=0*2+0,0*2+1,0*2+2 then 1*2+0,1*2+1,1*2+2 then 2*2+0,2*2+1,2*2+2
am i right? or maybe there is another explaination why it return 3×3 vector when we enter 2×2 image. I really wanted to know why this formula like this. Any help would be appreciated, sorry for my strange noob curiosity 🙁

Best Answer

Yes you are correct, it should either be 0 < k <= M1 or 0 <= k < M1. The version in which 0 is allowed but M1 is not, would correspond to C array notation where the first array element is Img(0,0); the version in which 0 is not allowed but M1 is, would correspond to MATLAB array notation where the first array element is Img(1,1).
The MATLAB equivalent of the code can be written as
W = Img(:);