作者ureikaze (etiquette)
看板MATLAB
標題Re: [問題] 找最後一個不為零的值並且加上1該怎麼寫?
時間Tue Jan 23 09:54:19 2007
※ 引述《anarchy1121 (安那其)》之銘言:
: 各位高手
: 我想請請教一各問題
: 我有一個矩陣A
: A=[0 1 2 3 0 0 0 0
: 1 2 3 4 5 0 0 0
: 0 1 0 3 4 5 0 0]
: 我要如何找到最後一個不為零的值並且加上1
: 如: A(1,4)+1
: A(2,5)+1
: A(3,6)+1
: 像這樣的我自己寫了一個,如下:
: for t=20:-1:5;
: for i=1:1000;
: if cppi0(i,t)>0;
: cppi0(i,t)=cppi0(i,t)+100;
: end
: end
: end
: 不過這樣跑出來會讓全部不為零的值都加上100
: 我應該怎麼改呢??
: 如果有人知道可以告訴我嗎?謝謝!!
b=a';
idx=max((meshgrid(1:size(a,2),1:size(a,1)).*(a~=0))') ...
+[0:size(a,2):size(a,1)*size(a,2)-1];
b(idx)'+1
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.98.59
1F:推 asingular:推 ~再大的矩陣都可以秒殺 01/23 12:16
2F:推 zxvc:...其實meshgrid內部有迴圈XD 01/23 12:54
3F:推 sunev:呃...樓上...我把meshgrid打開來看沒有看到迴圈啊... 01/23 15:05
4F:推 zxvc:抱歉,是ndgrid才有回圈。meshgrid沒有。 01/23 16:44
5F:推 sunev:ndgrid的迴圈很難跑超過五次吧....不會是效能瓶頸啊... 01/23 23:38