Re: [問題] 數字取代 (量化)已回收

看板MATLAB作者 (失ゎれた彩畫)時間16年前 (2009/08/07 21:26), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《xul (拉拉拉拉拉)》之銘言: : 我現在有一組量化公式 : if w>=delta/2 : ans=ceil(w/delta+1/2); : elseif w<=-delta/2 : ans=floor(w/delta-1/2); : else : ans=0; : end : 現在我希望要一口氣可以處理一串 w 假設是 w=-2:0.01:2 delta=0.8 : 請問我要怎麼寫才對呢? 我這樣寫沒辦法過 : w(w>=delta/2)=ceil(w/delta+1/2); : w(w<=-delta/2)=floor(w/delta-1/2); : w(-delta/2<w<-delta/2)=0; : 還是只能用for慢慢跑了? 可以不用迴圈 進行此類logical array的運算 要注意的是 你的logical array對應的維度要和你想指派的相同 在你的程式中 w(w>=delta/2)=ceil(w/delta+1/2); 左邊是w>=0.8/2的部份 右邊卻是整個w 維度不同自然不會過 因此要使兩邊的維度一致 在這個例子中應該如下 w(w>(delta/2))=ceil(w(w>(delta/2))+1/2); 同理 w(w<=-(delta/2))=floor(w(w>(delta/2))-1/2); w(w>(-delta/2) & w<(delta/2))=0 就能達到你想要的效果 其他可參考 logical array 和 Logical Operators裡的內容 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.82.2

08/07 21:27, , 1F
感謝
08/07 21:27, 1F
文章代碼(AID): #1AV2k6Fy (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1AV2k6Fy (MATLAB)