我有一个矩阵c
,我想多次搜索正最小元素的索引
d = min(c(c>0));
[x,y] = find(c == d);
但在下一次搜索中我希望它跳过旧的y
。
怎么做?
我想在其他计算中使用x
和y
。
我也想在矩阵c的特定列中找到这个最小值,如: j从m + 1到n-1
请帮助
答案 0 :(得分:4)
在循环之前定义mask = zeros(size(c));
。
在找到最低限度使用之前,
newc = c + mask;
d = min(newc(newc>0));
[x,y] = find(newc == d);
mask(:,y) = NaN;
答案 1 :(得分:1)
我认为你可以更新c矩阵。我的意思是:
% In the loop, use it: [x,y]=find(c==d); c(:, y) = [];
如果c矩阵很重要,可以使用临时变量等于c,而不是使用c。