MATLAB Answers

4-D Matrix Indices Corresponding to an Entry Inequality

3 views (last 30 days)
Paul Fishback
Paul Fishback on 17 Jun 2015
Edited: Matt J on 17 Jun 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.


Sign in to comment.

Accepted Answer

Matt J
Matt J on 17 Jun 2015
Edited: Matt J on 17 Jun 2015
[Tuples{1:ndims(A)}]=ind2sub(size(A), J);

More Answers (0)

Community Treasure Hunt

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

Start Hunting!