how can i store the location (x,y) in a variable in a loop?
Show older comments
the code i tried is:
index=1;
B=zeros(BmatRows,BmatCols);
for row=1:incrR:rows-(blockSizeR-1)
rowStart=row;
rowEnd=row+(blockSizeR-1);
for col=1:incrC:columns-(blockSizeC-1)
colStart=col;
colEnd=col+(blockSizeC-1);
oneBlock=grayImage(rowStart:rowEnd,colStart:colEnd);
vecOneBlock= reshape(oneBlock,1,numel(oneBlock));
B(index,:)=vecOneBlock;
index=index+1;
end
end
[B,index]=sortrows(B);
here i want to track the rowstart and colstart as a point location like (rowstart,colstart) stores in a variable and changed according to the loop after that.
the matrix B is now according to the "sortrows" function and the index is also according to the matrix B. i.e the "index" values also shuffles.
i want that the after storing point values in a variable it also shuffles according to the matrix B.
i dont know how to do this plz help me to do so...
Accepted Answer
More Answers (1)
Image Analyst
on 5 May 2013
Inside the innermost loop, add these lines:
starts(index, 1) = rowStart;
starts(index, 2) = colStart;
Or as a single line like
starts(index, 1:2) = [rowStart, colStart];
6 Comments
angel
on 5 May 2013
Image Analyst
on 5 May 2013
Edited: Image Analyst
on 5 May 2013
Is that really "oneBlock" instead of B, because after one row, B should have only one row, not 4.
And sortrows returns only 2 arguments, at most, not 3. And even if it did, you would totally trash the index and starts arrays that you took the trouble to create. Why would you do that?
Do you want this:
[B, sortingIndex] = sortrows(B);
% Re-order starts in the same way as B.
starts = starts(sortingIndex);
angel
on 5 May 2013
angel
on 5 May 2013
Image Analyst
on 5 May 2013
Sorry - forgot that starts was a 2D array and needs 2 indexes. Try it this way:
starts=starts(sortingIndex, :);
angel
on 6 May 2013
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!