我有一个矩阵D(i,j,k)
,我希望找到i
,j
,k
,以便最小化x
:
x = D(i,j,k)
例如:
D = rand(10,10,10);
min(min(min(D))) = 0.5123; %The smallest element in D
我想知道的是D的指数0.5123
我该怎么做? 谢谢, 埃利奥特
答案 0 :(得分:7)
答案 1 :(得分:5)
answer by @chappjc非常适合3D案例。
对于 n -dimensional 情况,请使用从{em>的单元格数组中获取的ind2sub
a comma-separated list的输出ñ:
indices = cell(1,ndims(D)); %// define number of indices (size of cell array)
[minVal linInd] = min(D(:)); %// linear index of minimizer
[indices{:}] = ind2sub(size(D),linInd); %// return indices in cell array
indices = cell2mat(indices); %// convert to nx1 vector containing the indices
答案 2 :(得分:1)
您可以使用find
功能。
D = rand(10,10,10);
[I, J]=find(D == min(min(min(D))));
请注意,对于超过2维的矩阵:
如果X是N维阵列,其中N> 1。 2,则J是N-1尾随的线性指数 X的尺寸
请参阅:http://www.mathworks.com/company/newsletters/articles/matrix-indexing-in-matlab.html
希望有所帮助