[问题]给定矩阵,寻找每个row中大于0的最小index

楼主: sin55688 (单手挑藏獒)   2015-05-23 01:14:47
给定一个矩阵A,寻找每个row当中大于0的最小colum index
例如 A = -1 0 1
-2 1 2
-3 3 3
我需要得到 m = [3,2,2]
最原本的写法是
for i = 1:N
m(i) = find(A(i,:)>0,1)
end
但是目前问题是N非常的大,希望有能省去循环的写法
作者: sunev (Veritas)   2015-05-23 05:07:00
B=A;B(B<0)=0;[~,I]=min(B,[],2);
作者: profyang (prof)   2015-05-23 10:03:00
楼上这样无理 会取到0B=A; B(B<=0)=max(B(:))+1; [~,I]=min(B,[],2);改这样好像就可以了
楼主: sin55688 (单手挑藏獒)   2015-05-23 12:05:00
把小于0的值破坏掉后,用min函数。感谢两位。
作者: celestialgod (天)   2015-05-24 13:32:00
[~, I]=min(A-min(A(:))*zeros(size(A, 1), size(A,2))); 这样应该可以不用另立变量
作者: sunev (Veritas)   2015-05-25 11:54:00
感谢修正,也可以设成Inf啦。

Links booklink

Contact Us: admin [ a t ] ucptt.com