Asked by Eva
on 3 May 2013

I have a 4-D array array=[i,j,k,l]. For given values of i and j, I would like to know the minimum value in the array for any k or l, as well as the values of k and l for this value.

Basically I'd like something like [min_value, min_k, min_l]=min (array,[],3:4)

but min, as far as I can tell, doesn't take minima over multiple dimensions.

Thanks in advance.

Answer by James Tursa
on 3 May 2013

Accepted answer

sub_array = array(i,j,:,:); [V X] = min(sub_array(:)); [I J K L] = ind2sub(size(sub_array),X);

The minimum value in the specified sub array will be V, and the indexes for the 3rd and 4th dimensions will be K and L.

Answer by Iman Ansari
on 3 May 2013

Hi.

R=reshape(1:16,[2 2 2 2]); M=min(min(R,[],4),[],3);

Answer by Andrei Bobrov
on 3 May 2013

a = randi(10,4,5,2,3); % eg

s = size(a); a1 = reshape(a,s(1),s(2),[]); [m1,i1] = min(a1,[],3); k = mod(i1-1,s(3))+1; l = ceil(i1/s(3));

Opportunities for recent engineering grads.

## 0 Comments