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

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

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

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`

Contact us