作者sin55688 (单手挑藏獒)
看板MATLAB
标题[问题]给定矩阵,寻找所有row大於0的最小index
时间Sat May 23 01:14:47 2015
给定一个矩阵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非常的大,希望有能省去回圈的写法
-------------
试过 [row,col] = find(A>0)
不过从row 跟 col 挑出数值的时候,还是会用到回圈...
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.113.22.208
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1432314890.A.620.html
※ 编辑: sin55688 (140.113.22.208), 05/23/2015 01:17:04
※ 编辑: sin55688 (140.113.22.208), 05/23/2015 01:18:01
※ 编辑: sin55688 (140.113.22.208), 05/23/2015 01:18:38
1F:推 sunev: B=A;B(B<0)=0;[~,I]=min(B,[],2); 05/23 05:07
2F:推 profyang: 楼上这样无理 会取到0 05/23 10:03
3F:→ profyang: B=A; B(B<=0)=max(B(:))+1; [~,I]=min(B,[],2); 05/23 10:03
4F:→ profyang: 改这样好像就可以了 05/23 10:03
5F:→ sin55688: 把小於0的值破坏掉後,用min函数。感谢两位。 05/23 12:05
6F:→ celestialgod: [~, I]=min(A-min(A(:))*zeros(size(A, 1), size(A, 05/24 13:32
7F:→ celestialgod: 2))); 这样应该可以不用另立变数 05/24 13:32
8F:推 sunev: 感谢修正,也可以设成Inf啦。 05/25 11:54