[讨论] 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