使用factorial.m函数出错,得到非负矩阵错误

时间:2013-04-11 20:46:51

标签: matlab

我有以下矢量, N = 10 VEC = -N:1:N

并在运行命令时

factorial((N+vec)/2))

我收到错误

  

???使用==>时出错17岁的阶乘   N必须是非负整数矩阵。

当“(N + vec)/ 2”只是

ans =
     0    0.5000    1.0000    1.5000    2.0000    2.5000    3.0000    3.5000    4.0000
4.5000    5.0000    5.5000    6.0000    6.5000    7.0000    7.5000    8.0000    8.5000
9.0000    9.5000   10.0000

没有负数......

任何解决它的技巧?

谢谢你!

1 个答案:

答案 0 :(得分:0)

正如wakjah在评论中所述,你的问题是当你在执行(N+vec)/2时除以2时,你得到的是非整数。你可以做点什么

factorial(round((N+vec)/2))

factorial输入值四舍五入到最接近的整数值。其他舍入选项包括floor向下舍入,ceil向上舍入