Borrar filtros
Borrar filtros

using FIND in 3D matrix

1 visualización (últimos 30 días)
xplore29
xplore29 el 29 de Mayo de 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

Respuesta aceptada

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

Más respuestas (2)

Sean de Wolski
Sean de Wolski el 29 de Mayo de 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 comentarios
xplore29
xplore29 el 29 de Mayo de 2013
I didnt understand why would you declare A(:,:,4)=A(:,:,1).
Azzi Abdelmalek
Azzi Abdelmalek el 29 de Mayo de 2013
It's just an example to test the code

Iniciar sesión para comentar.


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

Categorías

Más información sobre Data Types en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by