matlab 矢量化编程(四)—— 标量函数转化为能够处理矢量的函数

1. 组合的矢量实现

nchoosek(n, k) 的第二个参数在 matlab 下是不支持矢量化的,必须是标量形式。但 matlab 下的 gamma 函数,却可支持,矢量形式,又因为,gamma 函数与 阶乘的关系:

gamma(n+1) == n!

因此:

>> nchoosekln = @(n, k) gammaln(n+1) - gammaln(k+1) - gammaln(n-k+1);
>> nchooseks = @(n, k) exp(nchoosekln(n, k));
>> nchooseks(5, 1:4)
ans =
    5.0000   10.0000   10.0000    5.0000
原文地址:https://www.cnblogs.com/mtcnn/p/9422460.html