看板 MATLAB 關於我們 聯絡資訊
※ 引述《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
asingular:推 ~再大的矩陣都可以秒殺 01/23 12:16
zxvc:...其實meshgrid內部有迴圈XD 01/23 12:54
sunev:呃...樓上...我把meshgrid打開來看沒有看到迴圈啊... 01/23 15:05
zxvc:抱歉,是ndgrid才有回圈。meshgrid沒有。 01/23 16:44
sunev:ndgrid的迴圈很難跑超過五次吧....不會是效能瓶頸啊... 01/23 23:38