mat2cell operation coordinates cell
2 views (last 30 days)
Show older comments
i have problem with cell operation. i have 2 cells, first cell is A. A has 8*8 blocks and every blocks has 8*8 pixel. the second cell is B, B has 13*13 blocks and every blocks has 8*8 pixel.
coordinates cell A (X1,Y1) and coordinates cell B (X2,Y2)
i want to process two cells to find e and f. e=X1-(0.5*X2) and f=Y1-(0.5.Y2). so finally the output, i have 169 value of e and f.
3 Comments
Image Analyst
on 2 Mar 2013
So you have two cells. Two separate 1 element cells, not a a by 2 cell array. And the first cell is called "A" and the second cell is called "B". So, in the cell called "A" do you have a 64 row by 64 column matrix of uint8 values? Not sure how you're defining blocks and pixels, but if your array in "A" is 8 blocks tall and each block is 8 pixels tall, then that means that the whole thing is 64 pixels tall (=8*8). Am I understanding it correctly?
And B is a single cell also with one uint8 in the array, just like A, except that the uint8 array in B is 13*8 pixels tall and 13*8 pixels wide. Correct?
If so, why are you even messing with cells and not just using regular numerical arrays which are much easier to use?
Accepted Answer
Walter Roberson
on 1 Mar 2013
Edited: Walter Roberson
on 2 Mar 2013
[X2, Y2, X1, Y1] = ndgrid(1:size(B,1), 1:size(B,2), 1:size(A,1), 1:size(A,2));
E = X1 - X2./2;
F = Y1 - Y2./2;
e = squeeze(mat2cell(E, size(B,1), size(B,2), ones(1,size(A,1)), ones(1,size(A,2))));
f = squeeze(mat2cell(F, size(B,1), size(B,2), ones(1,size(A,1)), ones(1,size(A,2))));
2 Comments
Walter Roberson
on 2 Mar 2013
Your question included " the second cell is B, B has 13*13 blocks and every blocks has 8*8 pixel."
That B.
More Answers (0)
See Also
Categories
Find more on Large Files and Big Data 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!