在循环中搜索矩阵时跳过某些列

时间:2014-12-01 20:09:20

标签: arrays matlab matrix

我有一个矩阵c,我想多次搜索正最小元素的索引

d = min(c(c>0)); 
[x,y] = find(c == d); 

但在下一次搜索中我希望它跳过旧的y

怎么做?

我想在其他计算中使用xy

我也想在矩阵c的特定列中找到这个最小值,如:            j从m + 1到n-1

请帮助

2 个答案:

答案 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。