[問題]給定矩陣,尋找每個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