24小时热门版块排行榜    

Znn3bq.jpeg
查看: 774  |  回复: 1

n01096

新虫 (正式写手)

[求助] 函数调用过程,参数传递出大问题了,求大神指点

本人编写了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
刚开始用这些符号定义其他符号时,都还是正确的,但是到了中间某个位置就出错了,,,
感觉问题好像出在这,但是不知道是不是
求论坛里的大神指点一下,小弟感激不尽。。。。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

n01096

新虫 (正式写手)

这个问题也自行解决了,把f14 改成E14就可以了,具体的不知道为啥,,,,估计是f14被当成函数什么的,,,吧
2楼2015-08-25 11:43:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 n01096 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 河北省自然科学基金 +5 Peterchao 2026-05-18 8/400 2026-05-24 11:58 by 晓晓爱翠翠
[教师之家] 论文撤稿了 +3 bjvtcliu 2026-05-24 5/250 2026-05-24 10:06 by Equinoxhua
[教师之家] 某211大学教师把个人教师官方主页改成:我跑了我跑了我跑了!官宣跑路! +4 zju2000 2026-05-21 5/250 2026-05-24 09:35 by songwz
[考博] 26/27申博自荐 10+4 ZXW0202 2026-05-22 9/450 2026-05-24 08:47 by bjvtcliu
[硕博家园] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 hvkbtfonbv 2026-05-23 3/150 2026-05-24 08:01 by 9ps9vgkqva
[硕博家园] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 pmo95bazuy 2026-05-23 7/350 2026-05-24 06:35 by fpo5ljpv91
[基金申请] 揭秘青基评审内幕:几个A才能顺利中标 +3 国自然国社科中 2026-05-23 4/200 2026-05-23 15:37 by 2000zf36392
[基金申请] 青B发送上会通知了吗 +5 chemBioBro 2026-05-22 7/350 2026-05-23 12:35 by zhuifengzhy
[考博] 博士申请 +3 焦晓明 2026-05-21 3/150 2026-05-23 11:26 by mlc840311
[论文投稿] 投稿求助,期刊 +4 希冀,有书读 2026-05-20 8/400 2026-05-22 10:16 by 希冀,有书读
[文学芳草园] 献血感触 +7 呀呀好傻 2026-05-19 13/650 2026-05-21 20:15 by 呀呀好傻
[基金申请] 面上本子正文33页,违规吗?会被低分嘛? +14 1234567wang 2026-05-17 16/800 2026-05-21 17:58 by 脆脆的饼干
[基金申请] 国自然评分 +4 无名者登山 2026-05-20 5/250 2026-05-21 16:35 by swuq
[基金申请] 国自然上会要求 +7 无名者登山 2026-05-18 11/550 2026-05-21 15:50 by draco1987
[基金申请] 提交了我也来说说感想 +9 fummck 2026-05-20 10/500 2026-05-21 14:17 by draco1987
[基金申请] 评审有感 +15 popular289 2026-05-18 26/1300 2026-05-21 10:35 by 西葫芦炒鸡蛋
[有机交流] 反应很差,大量原料没有反应 5+3 Mr.Zot 2026-05-19 8/400 2026-05-20 22:19 by Equinoxhua
[考博] 如果工作了想读博,可以边工作边读全日制嘛? 30+3 铁达火车 2026-05-18 5/250 2026-05-20 09:33 by tfang
[考博] 博士申请 +5 星…… 2026-05-18 6/300 2026-05-18 23:49 by 糊糊涂涂好
[硕博家园] 我在等一个没有答案的答案 +3 Love_MH 2026-05-17 3/150 2026-05-18 02:22 by 竹林孤影
信息提示
请填处理意见