作者ding94xu04 (錯誤示範)
看板MATLAB
標題[討論] for迴圈輸出
時間Mon Jun 15 23:30:27 2015
先來個程式
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://webptt.com/m.aspx?n=bbs/MATLAB/M.1434382229.A.6A9.html
1F:→ waterCoka: 不是在for裡面輸出就可以了嗎 06/15 23:46
2F:推 waterCoka: fprintf('t = %f\t dp = %f\t x = %f\n', t, dp, x); 06/15 23:52
3F:推 waterCoka: 如果你只要印到小數後三位就把%f改成%.3f 06/15 23:56
4F:推 profyang: 你x=(x+1)/dp;這當然就把x覆蓋掉了阿... 06/16 07:38
5F:→ ding94xu04: 剛剛試進去程式只跑出最後一個值 06/16 10:55
6F:→ ding94xu04: 要怎麼不要覆蓋到Q___Q 06/16 10:56
7F:推 profyang: 通常寫for迴圈變數都是index吧 for i=1:length(t)之類 06/16 11:33
8F:→ profyang: t=0:0.001:1則先定義在外面 x=zeros(size(t))最好也先定 06/16 11:33
9F:→ profyang: 在外面 然後可能還要先定義x(1)=50;然後迴圈裏面就 06/16 11:34
10F:→ profyang: t都改成t(i) 最後一行改成x(i+1)=(x(i)+1)/dp 06/16 11:35
11F:→ profyang: 阿等等那這樣你應該是for i=1:length(t)-1這樣 06/16 11:36
12F:→ ding94xu04: 感謝!!!!!!已成功!! 06/16 15:49