声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1336|回复: 5

[编程技巧] 关于RAND函数调用问题

[复制链接]
发表于 2008-11-3 19:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
关于rand函数调用问题
function dx=vdp21(t,x)
y=y(n);
function y=y(n)
y(n)=2*pi*rand(1,1);
dx=sin(x+y(1))+1/2*sin(sqrt(2)*x+y(2))+1/4*sin(sqrt(10)*x+y(3));
存在m文件里
但调用 [T,X]=ode15s('vdp21',[0 5],0.1);plot(T,X)却显示出错,不知道为什么
如果不用RAND函数,而把y(1),y(2),y(3)变成具体值,或y1=2*pi*rand(1,1)这样赋值,则能正确输出。
望哪位大虾提示下
回复
分享到:

使用道具 举报

发表于 2008-11-3 20:19 | 显示全部楼层

回复 楼主 dc442 的帖子

出错提示是什么?
y=y(n);什么意思?
发表于 2008-11-3 20:47 | 显示全部楼层

回复 楼主 dc442 的帖子

估计是你m函数的问题
你看看用法
 楼主| 发表于 2008-11-3 21:06 | 显示全部楼层

回复 沙发 ch_j1985 的帖子

出错提示:
??? Error using ==> vdp2
Too many input arguments.

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

Error in ==> ode15s at 227
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, ...

y=y(n);y=2*pi*rand(1,1);定义函数,上面写错了点
发表于 2008-11-3 21:13 | 显示全部楼层

回复 地板 dc442 的帖子

n是怎么定义的?
发表于 2008-11-4 06:57 | 显示全部楼层
可能n就没有定义
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-10-1 23:44 , Processed in 0.065996 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表