matlab软件没有求阶乘的函数,所以必须自己来编一个函数。
函数是输入输出的关系,所以建立一个函数文档“factorialm”专门求阶乘。如下:
function f=factorial(N)%建立输入数据N求N的阶乘
f=1;
for i=1:N
f=fi;
end
end
然后再建一个主函数程序“MAINm”:
clc
N=10;%求1-10的阶乘的和
s=0;
for i=1:N
s=s+factorial(i)
end
fprintf('求和结果是%f',s);
这样就可以求出阶乘的和咯。
你这个要看级数是不是收敛的,还要考虑精度要求,因为加到无穷是不可能的,所以在达到一定精度的情况下将无穷替换为一个特定的值,再用for循环,求和就用sum=sum+f。f为函数的表达式
数据类型不对, h 是一种可以由各种数据类型集合而成的cell类型, 只不过在你这里比较特殊, 该cell的所有元素都是11的矩阵 而sum函数的参数必须是矩阵和数组
实际上可以定义下面命令表示的东西, 你可以运行下下面的命令看看效果
h = { '你好', [2,3]; 1, true }
注: cell 一般用大括号表示
在本问题中可以进行一下转换, 把cell h中的元素拎出来组成矩阵形式的hh, 然后再求和
close all;clear all;clc
h={[1],[1],[0],[1];[0],[1],[0],[1]}
[M,N]=size(h);
hh=zeros(M,N);
for i=1:M
for j=1:N
hh(i,j)=h{i,j}
end
end
sum( sum(hh) )
以上就是关于matlab阶乘求和问题全部的内容,包括:matlab阶乘求和问题、急急!! matlab 级数求和 想编一个级数求和的程序,请高手帮忙,谢谢、matlab求和问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)