Re: [問題] 數字取代 (量化)已回收
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章