Re: [問題] 矩陣元素替代已回收

看板MATLAB作者 (金菊潽半蜜)時間15年前 (2010/06/23 11:35), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《teryykyo (鮭魚返鄉...)》之銘言: : 若有一個矩陣 想要將矩陣中小於某值的元素替代掉 : 像是 A(i,j) < b 的話 就以c把元素(i,j)替代 : 我剛剛想到用 : for i=1:n*n % 1到維度平方 : if abs(A(i))<b : A(i)=c : end : end : 用一個簡單的矩陣試驗也成功了 : 不過因為我計算的矩陣A維度很大 : 如果用這個方式的話程式會跑到天荒地老 : 請問這種狀況下 應該怎麼寫才能讓計算速度變快呢? : 謝謝! 用 find [i j] = find( A < b ); % find 會回傳符合條件的 indeces 到 i,j a(i,j) = c; 應該就可以了 先試試看吧 我直接打的 說不定會有錯 --

04/02 20:44,
清冥時節雨紛紛
04/02 20:44

04/02 20:45,
路上閃光欲斷魂
04/02 20:45

04/02 20:46,
借問酒家何處有
04/02 20:46

04/02 20:47,
牧童搖指好勃村
04/02 20:47
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.133.13.135

06/23 11:58, , 1F
我剛用的那個還在跑 XD 跑完再用你教的試試 謝謝
06/23 11:58, 1F

06/23 12:04, , 2F
你用了馬上就會看到速度的差距 XD
06/23 12:04, 2F

06/24 22:28, , 3F
用FIND真的會快很多,這我絕對相信樓上大大說的
06/24 22:28, 3F
文章代碼(AID): #1C8O3iNd (MATLAB)
文章代碼(AID): #1C8O3iNd (MATLAB)