Matlab 如何找到向量a的最小值并索引所有最小值,而无需使用内置函数,如';查找'';最小值';还记得重复的吗?

Matlab 如何找到向量a的最小值并索引所有最小值,而无需使用内置函数,如';查找'';最小值';还记得重复的吗?,matlab,indexing,min,Matlab,Indexing,Min,我的A=[1016823]。正如我们所看到的,最小值是1,在索引2和7处出现两次 我的MATLAB代码如下: function [m,im] = myMinInd(A) m = A(1); im = 1; for i = 2:length(A) if A(i) < m m = A(i); im = i; end end end 我的索引仅显示“1”第一次出现的时间,而不是第二次出现的时间。有人

我的A=[1016823]。正如我们所看到的,最小值是1,在索引2和7处出现两次

我的MATLAB代码如下:

function [m,im] = myMinInd(A)
m = A(1);
im = 1;
    for i = 2:length(A)
        if A(i) < m
            m = A(i);
            im = i;
        end
    end
end

我的索引仅显示“1”第一次出现的时间,而不是第二次出现的时间。有人能帮忙吗?

在你的
for
循环中,你需要处理
A(i)=m
的情况。例如,像这样:

函数[m,im]=myMinInd(A)
m=A(1);
im=1;
对于i=2:长度(A)
如果A(i)
这使得输出
im
成为包含所有最小值索引的行向量

>> A
A =
    10     1     6     8     2     3     1     3
>> [m,im] = myMinInd(A)
m =
     1
im =
     2