看板 MATLAB 關於我們 聯絡資訊
先來個程式 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
waterCoka: 不是在for裡面輸出就可以了嗎 06/15 23:46
waterCoka: fprintf('t = %f\t dp = %f\t x = %f\n', t, dp, x); 06/15 23:52
waterCoka: 如果你只要印到小數後三位就把%f改成%.3f 06/15 23:56
profyang: 你x=(x+1)/dp;這當然就把x覆蓋掉了阿... 06/16 07:38
ding94xu04: 剛剛試進去程式只跑出最後一個值 06/16 10:55
ding94xu04: 要怎麼不要覆蓋到Q___Q 06/16 10:56
profyang: 通常寫for迴圈變數都是index吧 for i=1:length(t)之類 06/16 11:33
profyang: t=0:0.001:1則先定義在外面 x=zeros(size(t))最好也先定 06/16 11:33
profyang: 在外面 然後可能還要先定義x(1)=50;然後迴圈裏面就 06/16 11:34
profyang: t都改成t(i) 最後一行改成x(i+1)=(x(i)+1)/dp 06/16 11:35
profyang: 阿等等那這樣你應該是for i=1:length(t)-1這樣 06/16 11:36
ding94xu04: 感謝!!!!!!已成功!! 06/16 15:49