Matlab:编写函数文件求Cnm组合数

Matlab:编写函数文件求Cnm组合数,第1张

m=2

n=1

K=comb(n,m)

function c=comb(n,m)

c=1

for j=1:n

c=c*(m-n+j)/j

end

end

1题

function y=lilu_fact(n)

n=floor(n)%如果是小数,向下取整至整数

y=1

if n>1 %这里负数,0的阶乘都将得到1

for i=1:n

y=y*i

end

end

2题

function y=lilu_cnm(n,m)

y=1

if (n>=m &&n>=0 &m>=0)

m=min(n-m,m)

for i=1:m

y=y*(n-i+1)/i

end

end

3题

function y=lilu_polyadd(x1,x2)

%多项式低次放在最前面,升序排列

%比如x1=[1,2,3]代表1+2*x+3*x^2

n1=length(x1)

n2=length(x2)

n=min(n1,n2)

y=[]

for i=1:n

y=[y,x1(i)+x2(i)]

end

if (n==n1)

for i=n+1:n2

y=[y,x2(i)]

end

else

for i=n+1:n1

y=[y,x1(i)]

end

end

% 用 class 取得数据的类型,再用 strcmp 判断,分类存入不同矩阵

% 不知道我理解的正确与否

A = cell(1,4) % 生成实验数据

A{1} = logical(0)

A{2} = 'a'

A{3} = sym('sm')

A{4} = uint8(255)

A_logical = [] % 生成不同的矩阵

A_char = []

A_sym = []

A_uint8 = []

for k = 1:length(A)

cnm = class(A{k}) % 判断类型

if strcmp(cnm,'logical'), A_logical = [A_logical A{k}]end % 分别如入不同的矩阵

if strcmp(cnm,'char'), A_char = [A_char A{k}]end

if strcmp(cnm,'sym'), A_sym = [A_sym A{k}]end

if strcmp(cnm,'uint8'), A_uint8 = [A_uint8 A{k}]end

end


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11945063.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存