我想找到一个表示A
的矩阵的最小值。我可以这样做:
NM = find(A==min(A));
但我需要A
的最小数组,对于它,c(NM)
不为零。我怎样才能把这个条件放在找到最小值?
示例:
c=[0,18,9,0,100,0];
A=[1,189,125,25,7,1];
我exxt它返回5.
答案 0 :(得分:2)
godoc --http :6060
说明:
使用逻辑索引,首先会找到非零的c元素索引。
find(A==min(A(c~=0)))
然后提取idx1 = c~=0;
的与A
的非零元素索引相对应的元素。
c
然后我们找到最少的提取元素:
A1 = A(idx1);
我们再次使用逻辑索引来查找等于其最小值的A元素。
mn = min(A1);
最后使用idx2 = A == mn;
逻辑索引find
转换为线性索引。
idx2
答案 1 :(得分:0)
首先将矩阵转换为矢量(否则矩阵的最小值会引起混淆,这可能意味着每列的最小值。)
然后您可以对Vector进行排序并获取索引
c = c(idx);
然后,您可以使用索引对矢量c进行排序
c = c(c~=0);
result = c(1);
最后获得c:
的第一个非零元素echo "welcome"."<pre>".$output."</pre>";