MATLAB Answers


Access difference between 3 dimensional matrices

Asked by Samadrita
on 28 Jun 2013
Accepted Answer by Matt J

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));


Matt J
on 28 Jun 2013

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


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 =

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

MATLAB Academy

New to MATLAB?

Learn MATLAB today!