4-D Matrix Indices Corresponding to an Entry Inequality

2 visualizaciones (últimos 30 días)
Paul Fishback
Paul Fishback el 17 de Jun. de 2015
Editada: Matt J el 17 de Jun. de 2015
I have a 4-dim matrix, A, of size say 10-by-10-by-200-by-30.
I would like to find all 4-tuples [i,j,f,t] for which A(i,j,f,t)<.01 and store each 4-tuple [i,j,f,t] as a row in a matrix, call it "Entries." For example, if Entries had a row consisting of 5,4,120,8, then A(5,4,120,8)<.01.
I started J=find(A<=.01), which of course returns a vector, where each vector entry corresponds to a particular 4-tuple.
The problem I'm having is determining the correspondence. If A was 2-by-2, I would just use
[I_row, I_col] = ind2sub(size(A),J),
in which case Entries=[I_row,I_col].
It's the fact my matrix A is 4-dim that's causing my difficulty.

Respuesta aceptada

Matt J
Matt J el 17 de Jun. de 2015
Editada: Matt J el 17 de Jun. de 2015
[Tuples{1:ndims(A)}]=ind2sub(size(A), J);
Entries=[Tuples{:}];

Más respuestas (0)

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by