用matlab求7.创建函数文件MyFac.m, 用来求n! (2) 创建函数文件MyFacn.m, 要求Y=MyFacn(n)返回一个由1!,2!,…,n!组成的行向量。 (3) 分别调用函数MyFac和MyFacn来求1!+2!+3!+4!+5!
时间: 2023-08-28 18:06:49 浏览: 141
好的,你的问题是如何用MATLAB求1!+2!+3!+4!+5!,并要求使用函数文件MyFac.m和MyFacn.m。
首先,我们来创建MyFac.m文件。下面是代码:
```matlab
function f = MyFac(n)
% 求n的阶乘
if n == 0 || n == 1
f = 1;
else
f = n * MyFac(n-1);
end
end
```
接下来,我们来创建MyFacn.m文件。下面是代码:
```matlab
function Y = MyFacn(n)
% 返回一个由1!,2!,...,n!组成的行向量
Y = zeros(1,n);
for i = 1:n
Y(i) = MyFac(i);
end
end
```
现在我们可以调用这两个函数来求1!+2!+3!+4!+5!。下面是代码:
```matlab
n = 5;
Y = MyFacn(n);
sum = 0;
for i = 1:n
sum = sum + Y(i);
end
disp(sum);
```
运行结果为:`153`。
这样,我们就用MATLAB求出了1!+2!+3!+4!+5!,并使用了函数文件MyFac.m和MyFacn.m。
相关问题
用matlab写代码:1) 创建函数文件MyFac.m, 用来求n! (2) 创建函数文件MyFacn.m, 要求Y=MyFacn(n)返回一个由1!,2!,…,n!组成的行向量。 (3) 分别调用函数MyFac和MyFacn来求1!+2!+3!+4!+5!
以下是对应的 MATLAB 代码:
MyFac.m
```matlab
function f = MyFac(n)
% 计算 n!
if n == 0 || n == 1
f = 1;
else
f = n * MyFac(n-1);
end
end
```
MyFacn.m
```matlab
function Y = MyFacn(n)
% 返回一个由 1!, 2!, ..., n! 组成的行向量
Y = zeros(1, n);
for i = 1:n
Y(i) = MyFac(i);
end
end
```
主程序
```matlab
% 调用 MyFac 和 MyFacn 来计算 1!+2!+3!+4!+5!
n = 5;
fac_vec = MyFacn(n);
sum_fac = sum(fac_vec);
disp(['1!+2!+3!+4!+5! = ', num2str(sum_fac)]);
```
输出结果:
```
1!+2!+3!+4!+5! = 153
```
阅读全文