[討論] for迴圈輸出

看板MATLAB作者 (錯誤示範)時間10年前 (2015/06/15 23:30), 編輯推噓4(408)
留言12則, 3人參與, 最新討論串1/1
先來個程式 m=1; n=2; x=50; for t=0:0.001:1 vp=1+sin(t); vpn=1+sin(t+0.001); dvp=vpn-vp; dp=dvp*m*n; x=(x+1)/dp; end 問題:想要輸出t與dp以及x的值 像是 t=0 , dp=某值,x=某值 在板上爬文找到方法是將t另為矩陣 可是t不能從0開始 腦袋就有點打結了 希望結果是像這樣 t x 0 1 0.001 2 0.002 3 0.003 4 0.004 5 這樣的形式 因為for只跑出最後一個直讓我困惱很久~"~ 麻煩MATLAB大神了!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.238.88.192 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1434382229.A.6A9.html

06/15 23:46, , 1F
不是在for裡面輸出就可以了嗎
06/15 23:46, 1F

06/15 23:52, , 2F
fprintf('t = %f\t dp = %f\t x = %f\n', t, dp, x);
06/15 23:52, 2F

06/15 23:56, , 3F
如果你只要印到小數後三位就把%f改成%.3f
06/15 23:56, 3F

06/16 07:38, , 4F
你x=(x+1)/dp;這當然就把x覆蓋掉了阿...
06/16 07:38, 4F

06/16 10:55, , 5F
剛剛試進去程式只跑出最後一個值
06/16 10:55, 5F

06/16 10:56, , 6F
要怎麼不要覆蓋到Q___Q
06/16 10:56, 6F

06/16 11:33, , 7F
通常寫for迴圈變數都是index吧 for i=1:length(t)之類
06/16 11:33, 7F

06/16 11:33, , 8F
t=0:0.001:1則先定義在外面 x=zeros(size(t))最好也先定
06/16 11:33, 8F

06/16 11:34, , 9F
在外面 然後可能還要先定義x(1)=50;然後迴圈裏面就
06/16 11:34, 9F

06/16 11:35, , 10F
t都改成t(i) 最後一行改成x(i+1)=(x(i)+1)/dp
06/16 11:35, 10F

06/16 11:36, , 11F
阿等等那這樣你應該是for i=1:length(t)-1這樣
06/16 11:36, 11F

06/16 15:49, , 12F
感謝!!!!!!已成功!!
06/16 15:49, 12F
文章代碼(AID): #1LVk-LQf (MATLAB)
文章代碼(AID): #1LVk-LQf (MATLAB)