minimum of a 3D matrix
17 次查看(过去 30 天)
显示 更早的评论
M=rand(2,2,3)
[minM idx] = min(M(:));
[n m t] = ind2sub(size(M),idx)
minM
M(n,m,t)
I know this will give the minimum of the M matrix.
However, I want minimum value only for each M(:,:,i) part.
Is there anyway to do that?
Thanks in advance!
0 个评论
采纳的回答
Azzi Abdelmalek
2012-10-31
编辑:Azzi Abdelmalek
2012-10-31
M=rand(2,2,3);
out=min(reshape(min(M),size(M,2),[],1))'
or
out=arrayfun(@(x) min(min(M(:,:,x))),1:size(M,3))'
If you want to get the corresponding index
M=rand(6,4,5);
[n,m,p]=size(M)
[c,idx]=min(M)
[c1,idx2]=min(c)
idx1=arrayfun(@(x) idx(1,idx2(1,1,x),x),(1:p)')
v=[c1(:) idx1(:) idx2(:) (1:p)' ]
0 个评论
更多回答(1 个)
Image Analyst
2012-10-31
Try this:
minOfPlane = min(min(M(:,:, t)))
9 个评论
Andrei Bobrov
2012-10-31
[v, i1] = min(reshape(M,[],size(M,3)));
min_idx_m_n_t = [rem(i1-1,size(M,1))+1; ceil(i1/size(M,1)); 1:size(M,3)]';
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!