matlab定义多个函数

比如说我想定义函数f1,f2,....,fi,...f100
fi=x^i;
应该怎么写语句呢
>> syms x
>> for i=1:10
u(x,i)=x^i;
end
结果不对
补充下,我要得到函数的显式格式!因为下一步我要对其求导!指教下

Matlab中的程序有以下三种类型,现举例如下:
(1)f=@(x)x^2+x+1
(2)syms x;f=2*x^3-x^2+1

syms x;f=inline('2*x^3-x^2+1')
(3)建立M文件
function f=fun(x)
f=x^2-2*x+1

对于你的问题,有多种解决方法,现举一例(是我认为最好的解决办法)
(1)建立M文件,在其中输入如下内容:
function f=fun(x,i)
%x,i均位向量。
f=zeros(length(i),length(x));%预分配变量空间
for k=1:length(i)
f(k,:)=x.^i %相当于建立一个含有两个变量的函数。
end
在调用时,如果你需要计算x=[1:10];i=1:2;时f的函数值。可以在MATLAB命令窗口中输入如下命令:
x=[1:5];i=1:2;
f=fun(x,i)
运行所得结果为:
f=
1 2 3 4 5
1 4 9 16 25
当然,此时,若只需求某一个数的某个次方也行。
例如:要求6^3,在MATLAB命令窗口中输入
y=fun(4,3)
得到结果为
y=
64
其他,依次类推。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-08-12
Matlab中的程序有以下三种类型,现举例如下:
(1)f=@(x)x^2+x+1
(2)syms x;f=2*x^3-x^2+1

syms x;f=inline('2*x^3-x^2+1')
(3)建立M文件
function f=fun(x)
f=x^2-2*x+1

对于你的问题,有多种解决方法,现举一例(是我认为最好的解决办法)
(1)建立M文件,在其中输入如下内容:
function f=fun(x,i)
%x,i均位向量。
f=zeros(length(i),length(x));%预分配变量空间
for k=1:length(i)
f(k,:)=x.^i %相当于建立一个含有两个变量的函数。
end
在调用时,如果你需要计算x=[1:10];i=1:2;时f的函数值。可以在MATLAB命令窗口中输入如下命令:
x=[1:5];i=1:2;
f=fun(x,i)
运行所得结果为:
f=
1 2 3 4 5
1 4 9 16 25
当然,此时,若只需求某一个数的某个次方也行。
例如:要求6^3,在MATLAB命令窗口中输入
y=fun(4,3)
得到结果为
y=
64
其他,依次类推。
第2个回答  2019-12-06
程序修改如下:
function
[]
=
solveout(a,b,c)
syms
x
f
=
a*x^2+b*x+c
z
=
b^2-4*a*c;
if
z
>
0,
disp('有两个不相同的实数根');
x
=
solve(f);
x1
=
x(1)
x2
=
x(2)
%
disp('\n');
end
if
z
==
0,
disp('有两个相同的实数根');
x
=
solve(f);
x1
=
x(1)
x2
=
x(2)
%disp('(以上两个根相同)\n');
end
有问题欢迎追问
第3个回答  2008-12-06
function f=fun(i)
syms x
f=x^i;
%--------------以上保存为m文件
%调用的时候就可以这样:
y=fun(2)
表示y=x^2
可以啊
第4个回答  2008-12-06
定义一个两参的函数不就行啦?形如:f(x,i)=x^i
相似回答