| 查看: 2317 | 回复: 3 | ||
PZ_NaiBa木虫 (小有名气)
|
[求助]
Matlab函数调用,跳出循环问题 已有1人参与
|
|
我有三个程序,1.m,2.m,fun(); 程序1调用程序2和函数fun; 程序1在一个for循环中调用程序2: 程序2的目的是找到两个数值,当f(a)和f(b)异号时,找到a和b: 但是如果f(x)一直都是正的或者负的,就陷入了死循环;我设定了一个范围,想让它跳出程序2,并且停止程序1的当前循环,进入下一个循环; 我写的程序的问题是,调用的子程序不能用break,提示用return; 但是我用了return也有问题,return回来的数值,在程序1中进行计算会出错。。。 这是我写的程序2(也是一个函数): %%%%%%%%% 请大家批评指正~~~ - - - - - - - - - %%%%%%%%%%%% function [a,b] = findab(a0,b0) %FINDAB Summary of this function goes here % Detailed explanation goes here a=a0;b=b0;n=b0/1e4; if n<1e5; ya=fun(a);yb=fun(b); while ya*yb>0; n=n+1; a=(n-1)*1e4;b=n*1e4; ya=fun(a);yb=fun(b); end a; b; else break end |
» 猜你喜欢
不自信的我
已经有10人回复
磺酰氟产物,毕不了业了!
已经有8人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有10人回复
26申博(荧光探针方向,有机合成)
已经有4人回复
要不要辞职读博?
已经有3人回复
论文终于录用啦!满足毕业条件了
已经有26人回复
2026年机械制造与材料应用国际会议 (ICMMMA 2026)
已经有4人回复
Cas 72-43-5需要30g,定制合成,能接单的留言
已经有8人回复
北京211副教授,35岁,想重新出发,去国外做博后,怎么样?
已经有8人回复
自荐读博
已经有3人回复
» 本主题相关价值贴推荐,对您同样有帮助:
matlab中autosc函数是如何使用的?
已经有5人回复
【已完结】comsol参数里使用matlab函数出现维数不一致问题
已经有6人回复
用函数matlabFunction时老是报错
已经有4人回复
用matlab画一个函数,能帮我看看程序哪里有问题吗
已经有8人回复
fortran中如何调用matlab中求解特征值函数?
已经有9人回复
matlab求函数积分出错
已经有12人回复
用matlab制作的M文件保存在哪里才能直接调用?
已经有9人回复
MATLAB-pdepe函数使用问题
已经有5人回复
求助 matlab隐函数画图问题
已经有4人回复
matlab函数调用与数组的问题
已经有19人回复
Matlab中如何自己定义一个新函数,然后计算时可以调用?
已经有12人回复
matlab如何实现矩阵多行数据的循环调用
已经有5人回复
求matlab画一个函数的图
已经有6人回复
matlab重复调用子程序的问题
已经有6人回复
matlab代码 定义函数问题
已经有3人回复
matlab如何改变函数变量值在调用函数重新计算
已经有12人回复
matlab的函数调用问题
已经有3人回复
问个关于matlab里find函数的问题!
已经有4人回复
关于erfinv函数调用错误的问题
已经有4人回复
intel fortran 如何调用 matlab里面的函数
已经有5人回复
matlab做函数图象的问题
已经有6人回复
2楼2014-07-16 20:48:41
3楼2014-07-16 20:51:43
dnp
荣誉版主 (知名作家)
小木虫浪子
- 应助: 74 (初中生)
- 贵宾: 18.476
- 金币: 18799.9
- 散金: 2040
- 红花: 77
- 沙发: 6
- 帖子: 7304
- 在线: 593.8小时
- 虫号: 437184
- 注册: 2007-08-26
- 性别: GG
- 专业: 生物信息学
- 管辖: 有机交流
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
PZ_NaiBa: 金币+18, ★★★很有帮助, 恩,差不多,我刚才自己又重新搞定了, 2014-07-16 21:50:24
PZ_NaiBa: 金币+2, ★★★★★最佳答案 2014-07-16 21:50:39
感谢参与,应助指数 +1
PZ_NaiBa: 金币+18, ★★★很有帮助, 恩,差不多,我刚才自己又重新搞定了, 2014-07-16 21:50:24
PZ_NaiBa: 金币+2, ★★★★★最佳答案 2014-07-16 21:50:39
|
在程序2中设置一个范围,若在这范围内没有找到目标值,就认为设置a和b的值,这个值在你的程序中是不可能出现的,比如a和b都等于0,从而程序2会返回这个a和b;在程序1中得到了a和b,若都为0,则说明没有找到所期待的值,采用break或者其它的方式跳出循环; 你所给出的程序2的代码有点问题,我觉得这样修改比较好: 这样,若没有找到a和b,则都返回NaN,在程序1中就可以根据这个来判断有没有找到a和b了。 注:这里只是用n来判断在n<1e5的循环范围内是否找到a和b,这个就是我所设定的范围,可能用n不很合适,好像你的a和b的值都是根据n算的;这个没有关系,你可以用其它的来代,比如把if那一行和n=n+1中的n改成m也可以作为范围来设定。 |

4楼2014-07-16 21:45:58












回复此楼