matlab定义多个函数
发布网友
发布时间:2022-05-07 00:48
我来回答
共5个回答
热心网友
时间:2023-10-09 19:35
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
其他,依次类推。
热心网友
时间:2023-10-09 19:35
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
其他,依次类推。
热心网友
时间:2023-10-09 19:35
程序修改如下:
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
有问题欢迎追问
热心网友
时间:2023-10-09 19:36
function f=fun(i)
syms x
f=x^i;
%--------------以上保存为m文件
%调用的时候就可以这样:
y=fun(2)
表示y=x^2
可以啊
热心网友
时间:2023-10-09 19:37
定义一个两参的函数不就行啦?形如:f(x,i)=x^i