Matrix manipulation
Show older comments
Hi I'm new to Matlab and seem to be struggling again. I'm trying to subtract corresponding elements from two image matrices i.e.
matrix 1= A B matrix 2= a b C D c d
I'm trying to get (A-a)^2+(B-b)^2.....
Thanks in advance for any help, it;s really appreciated.
Answers (4)
the cyclist
on 25 Mar 2011
Not 100% if this is what you mean, but ...
M1 = [1 2 3 4];
M2 = [5 6 7 8];
M3 = (M1-M2).^2;
5 Comments
Karen Rafferty
on 25 Mar 2011
Matt Fig
on 25 Mar 2011
No FOR loop is needed.
M3 = sum((M1-M2).^2)
If you expect a scalar from the operation, do this:
M3 = sum((M1(:)-M2(:)).^2)
Karen Rafferty
on 25 Mar 2011
Matt Fig
on 25 Mar 2011
Yes, what version are you using, because this works find on my system.
Try this:
sum((Groundtruth-double(Haarbk2)).^2)
Karen Rafferty
on 25 Mar 2011
Sean de Wolski
on 25 Mar 2011
M3 = sum((Groundtruth(:)-double(Haarbk2(:))).^2);
Karen Rafferty
on 25 Mar 2011
0 votes
3 Comments
Matt Fig
on 25 Mar 2011
So what does this return:
class(Groundtruth)
class(Haarbk2)
Karen Rafferty
on 25 Mar 2011
Sean de Wolski
on 25 Mar 2011
Yes. You can't have a negative unsigned integer.
Haarbk2 = double(Haarbk2);
Karen Rafferty
on 25 Mar 2011
0 votes
Categories
Find more on Logical 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!