24小时热门版块排行榜    

查看: 1814  |  回复: 7

wzycrfpxz

新虫 (初入文坛)

[求助] matlab 问题求助,一段程序出错,求纠错

function dx=lunar(t,x,u)
syms t x u;
u0=45760.00;
if ((x(6)/x(5))*cos(atan(x(7)/x(6)))+(x(7)/x(5))*sin(atan(x(7)/x(6)))-(3.283e-4)*x(10))+1>0
    u=u0;

else   u=0.00;
dx=[(u/x(5))*cos(atan(x(7)/x(6)));
    (u/x(5))*sin(atan(x(7)/x(6)));
    x(1);
    x(2);
    (-3.281e-4)*u;
    0;
    -x(9);
    0;
    0;
    (u/x(5)^2)*cos(atan(x(7)/x(6)))*x(6)+(u/x(5)^2)*sin(atan(x(7)/x(6)))*x(7)];

end

??? Error using ==> mupadmex
Error in MuPAD command: Index exceeds matrix dimensions.

Error in ==> sym.sym>sym.subsref at 1366
            B = mupadmex('mllib::subsref',A.s,inds{:});

Error in ==> lunar at 4
if ((x(6)/x(5))*cos(atan(x(7)/x(6)))+(x(7)/x(5))*sin(atan(x(7)/x(6)))-(3.283e-4)*x(10))+1>0
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖


感谢参与,应助指数 +1
wzycrfpxz: 金币+1, 有帮助 2012-08-23 11:23:26
把syms t x u;这句删掉
showmethemoney
2楼2012-08-23 10:02:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wzycrfpxz

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by csgt0 at 2012-08-23 10:02:49
把syms t x u;这句删掉

??? Input argument "x" is undefined.

Error in ==> lunar at 4
if ((x(6)/x(5))*cos(atan(x(7)/x(6)))+(x(7)/x(5))*sin(atan(x(7)/x(6)))-(3.283e-4)*x(10))+1>0
删掉以后出现这个问题
3楼2012-08-23 10:06:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

你怎么调用函数的?你这是一个函数,得用别的数据调用,比如你在命令窗口输入以下试试:
x=ones(1,7);
t=1;
u=2;
dx=lunar(t,x,u);
这样就可以运行了。但是你的t和u好像根本与外面没有关系,因为再里面计算了
所以你可以改成
dx=lunar(x)
showmethemoney
4楼2012-08-23 10:22:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

忘了x是10个,用x=ones(1,10);
这个x是输入值,得你知道数值是多少输入。
showmethemoney
5楼2012-08-23 10:23:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wzycrfpxz

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by csgt0 at 2012-08-23 10:22:14
你怎么调用函数的?你这是一个函数,得用别的数据调用,比如你在命令窗口输入以下试试:
x=ones(1,7);
t=1;
u=2;
dx=lunar(t,x,u);
这样就可以运行了。但是你的t和u好像根本与外面没有关系,因为再里面计算了
...

function dx=lunar(t,x)

if ((x(6)/x(5))*cos(atan(x(7)/x(6)))+(x(7)/x(5))*sin(atan(x(7)/x(6)))-(3.283e-4)*x(10))+1>0
    u=45760.00;

else   u=0.00

dx=[(u/x(5))*cos(atan(x(7)/x(6)));
    (u/x(5))*sin(atan(x(7)/x(6)));
    x(1);
    x(2);
    (-3.281e-4)*u;
    0;
    -x(9);
    0;
    0;
    (u/x(5)^2)*cos(atan(x(7)/x(6)))*x(6)+(u/x(5)^2)*sin(atan(x(7)/x(6)))*x(7)];

end



命令窗口:x0=[150;-44;0;2300;9472.06;0.005;-0.003501;0;5.415e-4;1];
tic,[t,y]=ode45(@lunar,[0,100],x0);toc


Error in ==> lunar at 3
if ((x(6)/x(5))*cos(atan(x(7)/x(6)))+(x(7)/x(5))*sin(atan(x(7)/x(6)))-(3.283e-4)*x(10))+1>0

??? Error using ==> feval
Output argument "dx" (and maybe others) not assigned during call to "C:\Users\Administrator\Documents\MATLAB\lunar.m>lunar".

Error in ==> odearguments at 110
f0 = feval(ode,t0,y0,args{:});   % ODE15I sets args{1} to yp0.

Error in ==> ode45 at 173
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ..
6楼2012-08-23 10:24:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

★ ★ ★ ★
wzycrfpxz: 金币+4, ★★★很有帮助 2012-08-23 14:33:06
引用回帖:
6楼: Originally posted by wzycrfpxz at 2012-08-23 10:24:03
function dx=lunar(t,x)

if ((x(6)/x(5))*cos(atan(x(7)/x(6)))+(x(7)/x(5))*sin(atan(x(7)/x(6)))-(3.283e-4)*x(10))+1>0
    u=45760.00;

else   u=0.00

dx=;

end



命令窗口:x0=;
tic ...

if少了一个end,在dx=....那之前加个end。
你原来的如果if满足了就不计算dx了,所以出错。
showmethemoney
7楼2012-08-23 11:51:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wzycrfpxz

新虫 (初入文坛)

引用回帖:
7楼: Originally posted by csgt0 at 2012-08-23 11:51:47
if少了一个end,在dx=....那之前加个end。
你原来的如果if满足了就不计算dx了,所以出错。...

谢谢
8楼2012-08-23 14:32:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wzycrfpxz 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 估计是周四 +3 archvillain 2026-08-18 3/150 2026-08-21 01:48 by jnhyjjm
[基金申请] 基金啊基金 +3 longfie172 2026-08-20 3/150 2026-08-21 00:04 by wuchongjun
[基金申请] 科研孤儿太难了 +14 我4大白菜 2026-08-20 15/750 2026-08-20 22:33 by 袁向阳007
[基金申请] 今天系统多次维护,明天很可能放榜! +10 zju2000 2026-08-16 11/550 2026-08-20 20:02 by cl479861084
[基金申请] 只有每年这种时候来逛逛小木虫 +21 yaoyewhu2008 2026-08-20 22/1100 2026-08-20 17:03 by yaoyewhu2008
[基金申请] 放榜前的不淡定 40+3 snowwithsea 2026-08-19 12/600 2026-08-20 15:56 by lfy8008
[基金申请] 今天基金会出结果吗?20260819 +14 kkkl_v 2026-08-19 15/750 2026-08-20 08:21 by sunzitan
[基金申请] filecode,4个jtjc了 +11 ziyangfang 2026-08-19 13/650 2026-08-19 21:28 by aasahr
[教师之家] 为什么余额宝的年化利率越来越低?主要原因有哪些? +5 瞬息宇宙 2026-08-15 5/250 2026-08-19 20:23 by super2002521
[基金申请] 今天放榜没戏了吧 +4 yuleib84 2026-08-19 5/250 2026-08-19 19:52 by hhs666
[基金申请] 今天放榜吗? +14 布布和一二 2026-08-19 15/750 2026-08-19 18:07 by gltch
[基金申请] 2027广东省杰青 +4 奶牛小黑 2026-08-15 10/500 2026-08-19 11:02 by wanfengnew
[基金申请] 朋友圈看到的 +6 wangzilk 2026-08-18 8/400 2026-08-19 10:55 by Haru815
[基金申请] 快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。 +6 Tide man 2026-08-14 7/350 2026-08-19 09:56 by ZJTJZ
[基金申请] 什么时候开奖? +6 CrisMessi 2026-08-18 6/300 2026-08-19 08:06 by Equinoxhua
[论文投稿] 投稿咨询 +4 wwm09 2026-08-17 6/300 2026-08-18 15:36 by wwm09
[基金申请] 时间戳又变了8-15 +14 archvillain 2026-08-15 26/1300 2026-08-18 13:37 by phantomgost
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
[精细化工] 招聘 金属平磨液,抛光液研发工程师 +3 小天0311 2026-08-14 3/150 2026-08-16 07:31 by H9PLUS
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
信息提示
请填处理意见