[問題] IF已回收

看板MATLAB作者 (硬度)時間15年前 (2010/10/07 14:24), 編輯推噓0(007)
留言7則, 4人參與, 最新討論串1/1
先感謝各位大大的指點以下是我的問題 y(:,1)是由ode算出的解 f=y(:,1)-0.3; v=(sin(2*pi/48*t)); 問題是v的絕對值小於0.1時候,k=0,else,k=f./v a=abs(v); for i=1:length(v) if a<0.1 k(i)=0; else k=f./v(i); end end end %plot(t,k); end plot(t,f); %plot (t,y(:,1),'r');hold on hold off -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.57.95.162

10/07 14:30, , 1F
你的a應該是個矩陣(向量)所以你用if a<n這類判斷會出問題
10/07 14:30, 1F

10/07 15:00, , 2F
請問要如何解決?
10/07 15:00, 2F

10/07 15:02, , 3F
if a(i) <0.1
10/07 15:02, 3F

10/07 15:14, , 4F
C大我有改過那樣子也是沒有把0點的值改掉
10/07 15:14, 4F

10/07 15:38, , 5F
你的else裡面也要是k(i) 不然k就是一個值而已
10/07 15:38, 5F

10/07 15:40, , 6F
g大感謝你提醒~可是好像還是出不來
10/07 15:40, 6F

10/07 17:22, , 7F
k(i)=f(i)/v(i) 通通都改吧
10/07 17:22, 7F
文章代碼(AID): #1ChMUTkO (MATLAB)