| 查看: 2079 | 回复: 11 | ||
[求助]
请教一下,MATLAB如何实现一次循环结束后继续下一次循环 已有2人参与
|
||
|
请教一下一次循环结束后进行下一次循环,比如自变量为t我设步长dt,从t1=0直到t2=200; 按照自变量t计算完一次循环,然后按照 t+dt 计算完下一次循环, 以此类推直至t=t2, 步数t2/dt,即循环t2/dt次 |
» 猜你喜欢
国自然申请面上模板最新2026版出了吗?
已经有11人回复
推荐一本书
已经有12人回复
基金申报
已经有4人回复
计算机、0854电子信息(085401-058412)调剂
已经有4人回复
溴的反应液脱色
已经有6人回复
纳米粒子粒径的测量
已经有7人回复
常年博士招收(双一流,工科)
已经有4人回复
参与限项
已经有5人回复
有没有人能给点建议
已经有5人回复
萌生出自己或许不适合搞科研的想法,现在跑or等等看?
已经有4人回复
xgdcgy
木虫 (著名写手)
- 应助: 20 (小学生)
- 金币: 3470.4
- 散金: 121
- 红花: 22
- 帖子: 1186
- 在线: 161小时
- 虫号: 1882079
- 注册: 2012-07-07
- 性别: GG
- 专业: 流体力学

4楼2016-07-09 16:49:40
jhl2011
新虫 (小有名气)
- 应助: 1 (幼儿园)
- 金币: 424.1
- 帖子: 154
- 在线: 8.8小时
- 虫号: 3638822
- 注册: 2015-01-11
- 性别: GG
- 专业: 工程热物理与能源利用
11楼2016-07-14 08:48:45
|
clear endtime=1000; dt=0.0025; time=0; for N=endtime/dt; for i = 1:1:N time=(i-1)*dt; Y=2; if (time < 150) P=0.0; elseif ((time>=150) && (time < 160)) P =Y*(time-150)/10;%X=[2,3.95,8.1,18.66,55] elseif ((time >=160) && (time<250)) P =Y; elseif ((time>=250)&& (time<260)) inletgasmassrate = Y -Y*(time-250)/10; elseif ((time>=260)&&(time<300)) P =0; end end i=i+1; end 请教一下,这个多次循环有啥问题,问什么P值算出来是零 |
2楼2016-07-08 10:56:59
Justin147
铁杆木虫 (著名写手)
- 应助: 1 (幼儿园)
- 金币: 15014.6
- 红花: 3
- 帖子: 2952
- 在线: 139.4小时
- 虫号: 2307292
- 注册: 2013-02-28
- 性别: GG
- 专业: 地球动力学
3楼2016-07-09 08:48:56
5楼2016-07-09 23:59:35
6楼2016-07-10 00:07:38
ahdzjfa
金虫 (正式写手)
- 应助: 2 (幼儿园)
- 金币: 2917.5
- 散金: 70
- 红花: 1
- 帖子: 446
- 在线: 68.3小时
- 虫号: 3894544
- 注册: 2015-05-27
- 专业: 计算机应用技术

7楼2016-07-10 15:30:07
8楼2016-07-10 17:32:01
9楼2016-07-12 15:07:20
jhl2011
新虫 (小有名气)
- 应助: 1 (幼儿园)
- 金币: 424.1
- 帖子: 154
- 在线: 8.8小时
- 虫号: 3638822
- 注册: 2015-01-11
- 性别: GG
- 专业: 工程热物理与能源利用
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
shao0722: 金币+40, ★★★★★最佳答案, 这个我已经做出来了,基本是按照你的方法做的,不过作为初学者还是能学到 2016-07-15 00:32:15
shao0722: 金币+40, ★★★★★最佳答案, 这个我已经做出来了,基本是按照你的方法做的,不过作为初学者还是能学到 2016-07-15 00:32:15
|
框架可以这样写: t1 = 0; t2 = 100; dt = 0.0025; for t = t1:dt:t2 ... end 循环次数应该是 t2/dt +1 你对matlab 中的for循环还不了解, for t = t1:dt:t2 ... end ,“t1:dt:t2”是一个向量,你可以按照需求定义;这个循环表示 t 从向量的第一个到最后一个遍历一遍,每一次都执行循环一次,所以你的i = i=i+1就 没有必要了。而且外面那个也没有必要,因为你for N=endtime/dt; 实际上N只有一个值所以就执行一次根本没有循环。 |
10楼2016-07-14 08:45:05












回复此楼
shao0722
t2-t1)/dt