What is the meaning of this formula ?

7 views (last 30 days)
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 3x3 vector when we enter 2x2 image. I really wanted to know why this formula like this. Any help would be appreciated, sorry for my strange noob curiosity :(

Accepted Answer

Walter Roberson
Walter Roberson on 4 Mar 2013
Edited: Walter Roberson on 4 Mar 2013
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(:);

More Answers (1)

Jan
Jan on 4 Mar 2013
The indices of your formula start at 0. So if M1 and M2 are 2, you get the elements at the indices 0, 1, and 2, which are 3 elements.
Btw, a corresponding Matlab implementation would be:
ImgT = Img.';
W = ImgT(:);
Assumed, that the data are stored in row order.

Community Treasure Hunt

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

Start Hunting!