0

次のベクトルがあります。 N=10 vec=-N:1:N

そしてコマンドを実行するとき

factorial((N+vec)/2))

エラーが発生しています

??? ==> factorial at 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 がコメントで述べたように、あなたの問題は、 を実行する際に 2 で割ると、(N+vec)/2非整数になることです。次のようなことができます

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

factorial入力値を最も近い整数値に丸めます。その他の丸め方法はfloor、切り捨てとceil切り上げです。

于 2013-04-11T21:00:09.267 に答える