数学建模社区-数学中国
标题:
MATLAB中常用的排列、组合与阶乘等函数
[打印本页]
作者:
parkshinyang
时间:
2012-4-15 17:55
标题:
MATLAB中常用的排列、组合与阶乘等函数
闲聊之余,整理了几个常用的排列、组合与阶乘等函数。希望对大家有用!
1、combntns(x,m)
列举出从n个元素中取出m个元素的组合。
其中,x是含有n个元素的向量。 combos = combntns(1:5,3)
combos =
1 2 3
1 2 4
1 2 5
1 3 4
1 3 5
1 4 5
2 3 4
2 3 5
2 4 5
3 4 5
复制代码2、perms(x)
给出向量x的所有排列。 s=perms(2:2:6)
s =
6 4 2
6 2 4
4 6 2
4 2 6
2 4 6
2 6 4
复制代码3、nchoosek(n,m)
从n各元素中取m个元素的所有组合数。
nchoosek(x,m)
从向量x中取m个元素的组合 s=nchoosek(2:2:10,4)
s =
2 4 6 8
2 4 6 10
2 4 8 10
2 6 8 10
4 6 8 10
复制代码4、factorial(n)
求n的阶乘。 s=factorial(4)
s =
24
复制代码5、prod(n:m) %求排列数:m*(m-1)*(m-2)*…*(n+1)*n
prod(1:2:2n-1)或prod(2:2:2n) %求(2n-1)!!或(2n)!!
prod(A) %对矩阵A的各列求积
prod(A,dim) %dim=1(默认);dim=2,对矩阵A的各行求积(等价于(prod(A'))') >> M = magic(3)
M =
8 1 6
3 5 7
4 9 2
>> prod(M,2)
ans =
48
105
72
>> prod(M')'
ans =
48
105
72
复制代码6、cumprod(n:m)
输出一个向量[n n*(n+1) n(n+1)(n+2) … n(n+1)(n+2)…(m-1)m]
cumprod(A)
cumprod(A,dim) cumprod(1:5)
ans =
1 2 6 24 120
A = [1 2 3; 4 5 6];
cumprod(A)
ans =
1 2 3
4 10 18
cumprod(A,2)
ans =
1 2 6
4 20 120
复制代码7、gamma(n)
求n!
gamma(n+1) = n! = prod(1:n)
8、v='n!';
vpa(v) >> v='5!';
>> vpa(v)
ans =
120.
复制代码
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5