MATLAB中如何在M文件中调用自定义函数

我用matlab学习梯形法求定积分,把要求的函数定义为f1.m
function y=f1(x)
y=exp(-x*x);
我在另一个M文件ts.m中计算f1在0-1上面的定积分:
a=0;
b=1;
n=1;
h=b-a;
eps=0.00001;
syms x
I1=h*(f1(a)+f1(b));
while (n<1000)
for k=0:n-1
I=I1/2+h/2*f1(a+k*h+h/2);
end
if abs(I-I1)<eps
break
end
n=n+n;
h=h/2;
I1=I;
end
I
为什么报错

n 1、函数文件+调用命令文件:需单独定义一个自定义函数的M文件;
n 2、函数文件+子函数:定义一个具有多个自定义函数的M文件;

1、函数文件+调用函数文件:定义多个M文件:
% 调用函数文件:myfile.m
clear
clc
for t=1:10
y=mylfg(t);
fprintf(‘M^(1/3)=%6.4f\n’,t,y);
end
%自定义函数文件: mylfg.m
function y=mylfg(x) %注意:函数名(mylfg)必须与文件名(mylfg.m)一致
Y=x^(1/3);
注:这种方法要求自定义函数必须单独写一个M文件,不能与调用的命令文件写在同一个M文件中。
2、函数文件+子函数:定义一个具有多个子函数的M文件
%命令文件:funtry2.m
function []=funtry2()
for t=1:10
y=lfg2(t)
fprintf(‘M^(1/3)=%6.4f\n’);
End
function y=lfg2(x)
Y= x^(1/3);
%注:自定义函数文件funtry2.m中可以定义多个子函数function。子函数lfg2只能被主函数和主函数中的其他子函数调用。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-10-23
看看路径有没有设对,如果Path里面没有包含f1.m的目录,就用cd命令把这个目录加进去,用法和DOS下的一样本回答被提问者采纳
相似回答