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!