f = @(x) (x-1)*(x-2)*...*(x-50);
私はすべての50点の条件を入力せずにMATLABでこれを行うことができますどのように
?
f = @(x) (x-1)*(x-2)*...*(x-50);
私はすべての50点の条件を入力せずにMATLABでこれを行うことができますどのように
?
を定義することができ、y = myfunc(x, 50)
を使用したりできるよう、50の用語のため、この結果を計算したいあなたのケースで
はベクトル化ソリューションです。 :
y = prod((x-[1:50]))
それとも、匿名関数をしたい場合:
f = @(x) (prod((x-[1:50])))
BそれはMatlab JIT-Acceleratorのおかげで、@Chrisの解決策(これは良いことですが、私はそれを上書きしました)よりも速くないかもしれません。
関数にラップすることができます。たとえば、あなたが定義した
function y = myfunc(x, n)
y = 1.;
for i = 1:n
y = y*(x-i);
end
end
機能は、基本的には自明for
ループとして書かれているproduct of a sequence、です。あなたはちょうどあなたが、これは関数ハンドルになりたい場合は、あなたがここで
f = @(x) myfunc(x, 50);
'f = @(x- [1:50])'が働いていて、 'f = @(x)prod(x-1:50)'が何かを作り出しています。 –