在编写连乘的时候有个代码一直报错。连乘的公式如下:
我编写了一个函数如下:
function result = multip_func(n)
syms k
result = double(symprod(1-1/(2*k), k, 1, n));
end
这个函数在输入是数字的时候没问题的。
但是我现在想让连乘的上限n等于一个矩阵的每个元素(元素都是大于等于1的整数)。因此我编写了如下一个函数:
function result = multip(mat)
result=arrayfun(multip_func,mat);
end
但是运行总是报错,说我上面multip_func函数的第三行有错,报错如下:
现在只好采用循环的方式算,很慢。求大神帮忙看看要怎么实现这个功能!