作者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/cn.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