Matrix manipulation
Afficher commentaires plus anciens
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.
Réponses (4)
the cyclist
le 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 commentaires
Karen Rafferty
le 25 Mar 2011
Matt Fig
le 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
le 25 Mar 2011
Matt Fig
le 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
le 25 Mar 2011
Sean de Wolski
le 25 Mar 2011
M3 = sum((Groundtruth(:)-double(Haarbk2(:))).^2);
Karen Rafferty
le 25 Mar 2011
0 votes
3 commentaires
Matt Fig
le 25 Mar 2011
So what does this return:
class(Groundtruth)
class(Haarbk2)
Karen Rafferty
le 25 Mar 2011
Sean de Wolski
le 25 Mar 2011
Yes. You can't have a negative unsigned integer.
Haarbk2 = double(Haarbk2);
Karen Rafferty
le 25 Mar 2011
0 votes
Catégories
En savoir plus sur Logical dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!