| 查看: 661 | 回复: 1 | |||
[求助]
函数调用过程,参数传递出大问题了,求大神指点
|
|
本人编写了4阶龙格库塔迭代方程,刚开始全部写在一个m脚本文件里,运行都没问题。后面考虑到可读性与模块化,打算用函数模块化的形式来写。 模块程序写好后,首次运行与第二次运行的提示错误信息都不一样。 第一次是 <font color="#ff0000">??? Error using ==> horzcat CAT arguments dimensions are not consistent. Error in ==> sym.subs>@(x)[char(x),','] at 249 s = cellfun(@(x)[char(x) ','],X,'UniformOutput',false); Error in ==> sym.subs>getNames at 249 s = cellfun(@(x)[char(x) ','],X,'UniformOutput',false); Error in ==> sym.subs>tryFunctionHandle at 193 xvarnames = getNames(X); Error in ==> sym.subs>mupadsubs at 140 [G,worked] = tryFunctionHandle(F,X,Y); Error in ==> sym.subs at 127 G = mupadsubs(F,X,Y); Error in ==> Runge_Kutta_Iteration at 167 f0Nwl_new=subs(f0Nwl,{I,Nwl,Nes,Ngs,f12,f13,f14,f15},... Error in ==> Runge_Kutta_Main at 23 Runge_Kutta_Iteration(Light_in_section,Runge_Kutta_Iteration_num) Error in ==> ModeLocking_20150427_main at 45 Runge_Kutta_Main(Light_in_section);</font> 第二次是 <font color="#ff0000">??? Error using ==> Runge_Kutta_Iteration at 90 Error due to multiple causes. Error in ==> Runge_Kutta_Main at 23 Runge_Kutta_Iteration(Light_in_section,Runge_Kutta_Iteration_num) Error in ==> ModeLocking_20150427_main at 45 Runge_Kutta_Main(Light_in_section); Caused by: Error using ==> Runge_Kutta_Iteration at 90 Error evaluating parameter 'Denominator' in 'f14/Actuator Model': Undefined function or variable 'Ta'. Error using ==> Runge_Kutta_Iteration at 90 Error evaluating parameter 'Gain' in 'f14/Aircraft Dynamics Model/Gain3': Undefined function or variable 'Uo'.</font> 这个问题查了一下,看好多人都说是变量调用的问题,相关帖子的链接是http://www.ilovematlab.cn/forum. ... &tid=206897。 然后就用global定义了全局变量,主函数和每个子函数都进行了global定义变量,定义格式为: global n m groupn modeln ith pa Main_data RK_data; 但是还是出现这个问题。 重新查了书本之后,使用了evalin 和assignin方法进行了数据传递,在"Runge_Kutta_Iteration"这个迭代函数的刚开始就进行了数据传递,代码如下,但还是出现了上述报错信息。 n=evalin('base','n'); m=evalin('base','m'); groupn=evalin('base','groupn'); modeln=evalin('base','modeln'); ith=evalin('base','ith'); pa=evalin('base','pa'); Main_data=evalin('base','Main_data'); RK_data=evalin('base','RK_data'); 于是我进行脚本文档的调试,文档前面部分的代码如下(我把函数名给注释了): % function Runge_Kutta_Iteration(Light_in_section,Runge_Kutta_Iteration_num) %%%the iteration program of 4th Runge_Kutta method % n=evalin('base','n'); % m=evalin('base','m'); % groupn=evalin('base','groupn'); % modeln=evalin('base','modeln'); % ith=evalin('base','ith'); % pa=evalin('base','pa'); % Main_data=evalin('base','Main_data'); % RK_data=evalin('base','RK_data'); % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TEST_POINT=0; dt=0.5e-12*1.09 n=50;%the total steps of time t=(1:n)*dt/1e-12; m=2; dt1=dt/m; ith=1; inner_loop_steps=[3*ones(1,10),10*ones(1,10)];% change the inner loop number in different time to be more effecient in SignalModulation simulation groupn=100;%the group number of ES and GS modeln=600;%the lasering model number Main_data_initiate;% intializing the Main_data Is_gain_section=1; Light_in_section=1; Runge_Kutta_Iteration_num=20; parameters(1); RK_Iteration_Data_Init(1,20) 这个时候,运行这个脚本文件,程序就不报错。。。:L 一调回函数的形式就会出错。。。。 自己已经看了3/4天了,头都看大了,,, 我在”Runge_Kutta_Iteration"这个迭代函数用了符号变量 syms S I f12 f13 f14 f15 f22 刚开始用这些符号定义其他符号时,都还是正确的,但是到了中间某个位置就出错了,,, 感觉问题好像出在这,但是不知道是不是 ![]() ?求论坛里的大神指点一下,小弟感激不尽。。。。 |
» 收录本帖的淘帖专辑推荐
matlab编程绘图 |
» 猜你喜欢
真诚求助:手里的省社科项目结项要求主持人一篇中文核心,有什么渠道能发核心吗
已经有8人回复
寻求一种能扛住强氧化性腐蚀性的容器密封件
已经有5人回复
论文投稿,期刊推荐
已经有6人回复
请问哪里可以有青B申请的本子可以借鉴一下。
已经有4人回复
孩子确诊有中度注意力缺陷
已经有14人回复
请问下大家为什么这个铃木偶联几乎不反应呢
已经有5人回复
请问有评职称,把科研教学业绩算分排序的高校吗
已经有5人回复
2025冷门绝学什么时候出结果
已经有3人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
» 本主题相关价值贴推荐,对您同样有帮助:
求指教,如何在udf函数中调用壁面上任意位置流体的速度、容积密度和总正应力等参数?
已经有7人回复
求大神帮忙matlab拟合函数求参数
已经有9人回复
送88金币,求大神解答pair distribution function(对密度分布函数)的问题
已经有44人回复
matlab ode15s方程中两个参数怎么调用其他函数带入求解
已经有6人回复
2楼2015-08-25 11:43:07














回复此楼
