Effacer les filtres
Effacer les filtres

using FIND in 3D matrix

1 vue (au cours des 30 derniers jours)
xplore29
xplore29 le 29 Mai 2013
I am trying to find the 3rd dimension index value for the following case
A(:,:,1)=[1 2 ; 3 4]
A(:,:,2)=[9 8 ; 4 4]
A(:,:,3)=[2 4 ; 7 4]
B=[1 2 ; 3 4]
How can I use find(.) for this purpose

Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 29 Mai 2013
idx=find(arrayfun(@(x) isequal(A(:,:,x),B),1:size(A,3)))

Plus de réponses (2)

Sean de Wolski
Sean de Wolski le 29 Mai 2013
I would do that like this:
A(:,:,1)=[1 2 ; 3 4];
A(:,:,2)=[9 8 ; 4 4];
A(:,:,3)=[2 4 ; 7 4];
A(:,:,4)=A(:,:,1);
B=[1 2 ; 3 4];
idx = find(all(all(bsxfun(@eq,A,B),1),2))
Find where all elements in rows/cols are equal in pages
  2 commentaires
xplore29
xplore29 le 29 Mai 2013
I didnt understand why would you declare A(:,:,4)=A(:,:,1).
Azzi Abdelmalek
Azzi Abdelmalek le 29 Mai 2013
It's just an example to test the code

Connectez-vous pour commenter.


Andrei Bobrov
Andrei Bobrov le 29 Mai 2013
[ii,jj]=ismember(reshape(A,[],size(A,3))',B(:)','rows');
out = jj(ii);

Catégories

En savoir plus sur Data Types dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by