Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

Access difference between 3 dimensional matrices

Asked by Samadrita on 28 Jun 2013

I have two matrices,A is a 1000*1000*3 matrix and B is another matrix that started out as A and due to changes made during the code is a different 1000*10000*3 matrix. I would like to find out the position and the number of elements that have not changed. This for two D matrices can be done with setdiff, is there any way I can do this for 3D matrices? Thanks

0 Comments

Samadrita

Products

1 Answer

Answer by Matt J on 28 Jun 2013
Accepted answer
 [i,j,k] = ind2sub(size(A), find(A==B));
 NumberUnchanged=length(i);

4 Comments

Matt J on 28 Jun 2013

Yep, you never mentioned anything about these being RGB images, but the modification is easy

 [i,j]=find(all(A==B,3));
Samadrita on 28 Jun 2013

Sorry about not mentioning RGB! [i,j] is still a matrix bigger than my original matrix at 25609092x2 . I also tried simply find(all(A==B)),that is a 933X1 matrix. Would that give me the number of unchanged values? Or am I misunderstanding something? Thanks for commenting.

Matt J on 28 Jun 2013

[i,j] is still a matrix bigger than my original matrix at 25609092x2

No, I don't think it's bigger

    >> 5052*6492>25609092
    ans =
         1
Matt J

Contact us