0

我有以下向量,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

没有负数...

有什么技巧可以绕过它?

谢谢你!

4

1 回答 1

0

正如 wakjah 在他的评论中所说,您的问题是,当您在 perform 中除以 2 时(N+vec)/2,您得到的不是整数。你可以做类似的事情

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

将您的输入值四舍五入factorial到最接近的整数值。其他舍入选择是floor向下舍入和ceil向上舍入

于 2013-04-11T21:00:09.267 回答