Matrix manipulation
显示 更早的评论
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.
回答(4 个)
the cyclist
2011-3-25
Not 100% if this is what you mean, but ...
M1 = [1 2 3 4];
M2 = [5 6 7 8];
M3 = (M1-M2).^2;
5 个评论
Karen Rafferty
2011-3-25
Matt Fig
2011-3-25
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
2011-3-25
Matt Fig
2011-3-25
Yes, what version are you using, because this works find on my system.
Try this:
sum((Groundtruth-double(Haarbk2)).^2)
Karen Rafferty
2011-3-25
Sean de Wolski
2011-3-25
M3 = sum((Groundtruth(:)-double(Haarbk2(:))).^2);
Karen Rafferty
2011-3-25
0 个投票
3 个评论
Matt Fig
2011-3-25
So what does this return:
class(Groundtruth)
class(Haarbk2)
Karen Rafferty
2011-3-25
Sean de Wolski
2011-3-25
Yes. You can't have a negative unsigned integer.
Haarbk2 = double(Haarbk2);
类别
在 帮助中心 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!