matlab一个m文件中定义两个函数,这两个函数如何相互调用,求解答 下面是我写的程序

functionC=bace(s)s=(0:0.01:27.66);fori=1:size(s,2)ifs(i)<8.02;C(i)=0.36*s(i);elseC(i)... function C=bace(s)
s=(0:0.01:27.66);
for i=1:size(s,2)
if s(i)<8.02;
C(i)=0.36*s(i);
else
C(i)=4.1*10^(-5)*(s(i)-8.02).^4+2.85;
end
end

function dy = rid(s,y)
dy = zeros(6,1);
dy(1)=-9.8*cos(y(1))/y(5);
dy(2)=cos(y(1));
dy(3)=sin(y(1));
dy(4)=1/y(5);
dy(5)= -294*sin(y(1))/(y(5)*(30+y(6)))-0.6125*y(5)*(4.44+C(i))/(30+y(6))-y(6)/(30+y(6));
dy(6)=1.19*y(5)*C(i)^0.5*0.36/y(5);
展开
 我来答
qiujimmy001
2011-11-26 · TA获得超过107个赞
知道答主
回答量:71
采纳率:0%
帮助的人:39.5万
展开全部
将这两个函数保存在两个m文件里,文件的名字和函数的名字一致,bace.m 和 rid.m 。然后重新建一个m文件,如果调用这两个函数的时候,用其名字,再带参数就行了。
eg:
result1=base(x);
result2=rid(y);
result3=result1+result2;
追问
可是不对啊,我的rigid中需要用count函数中C的数值,就是说C在count中是个参数,可是在输出rigid的时候总是报错,求大神解答
function C=bace(s)
s=(0:0.01:27.66);
for i=1:size(s,2)
if s(i)<8.02; C(i)=0.36*s(i);
else C(i)=4.1*10^(-5)*(s(i)-8.02).^4+2.85;
end
end
追答
我实在没有看明白你的问题,你的程序在哪里?count函数和rigid函数是什么?如果输出rigid函数出错,可能是语法问题。前面我的回答中的例子是在一个新的m文件中调用两个函数,将函数运算的结果赋给变量,再对变量运算就行了,这样可以多次调用函数,得到复杂运算的结果,还减少重复的代码。当然也能实现你想达到的相互调用的目的。建议查查matlab的教材就更清楚了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式