关于matlab求最小值的编程问题

2024-11-08 14:44:04
推荐回答(2个)
回答1:

function [mini,dim]=minimum(A)
[len1,len2,len3]=size(A);
[mini ,index]= min(A(:));
%然后把index转化为相应维的位置信息
dim3=ceil(index/len1/len2);
dim2=ceil((index-(dim3-1)*len1*len2)/len1);
dim1=ceil(index-(dim3-1)*len1*len2-(dim2-1)*len1);
dim=[dim1,dim2,dim3];

命令行中
A=randn(10,10,10)

[mini,dim]=minimum(A)

回答2:

如果A是三维矩阵,可以用A(:)将A先转化为一个列向量,那么可以用min(A(:))求出A的最小值,再用find函数找出最小值的索引。
minimum = min(A(:));
% index 是个数或向量,存放的是A的最小值的线性索引

index = find(A == minimum);