[討論] for迴圈輸出

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

Links booklink

Contact Us: admin [ a t ] ucptt.com