Re: [問題] 找最後一個不為零的值並且加上1該怎麼寫?

看板MATLAB作者 (etiquette)時間18年前 (2007/01/23 09:54), 編輯推噓5(500)
留言5則, 3人參與, 最新討論串1/1
※ 引述《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

01/23 12:16, , 1F
推 ~再大的矩陣都可以秒殺
01/23 12:16, 1F

01/23 12:54, , 2F
...其實meshgrid內部有迴圈XD
01/23 12:54, 2F

01/23 15:05, , 3F
呃...樓上...我把meshgrid打開來看沒有看到迴圈啊...
01/23 15:05, 3F

01/23 16:44, , 4F
抱歉,是ndgrid才有回圈。meshgrid沒有。
01/23 16:44, 4F

01/23 23:38, , 5F
ndgrid的迴圈很難跑超過五次吧....不會是效能瓶頸啊...
01/23 23:38, 5F
文章代碼(AID): #15jMhCxR (MATLAB)
文章代碼(AID): #15jMhCxR (MATLAB)