MATLAB Answers

Samadrita

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

  0 Comments

1 Answer

Matt J
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

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today