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

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);

将这两个函数保存在两个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的教材就更清楚了

温馨提示:答案为网友推荐,仅供参考
相似回答