2011-11-13 5 views
0

私は、次の機能があります:私は、私はそれを拒否したいくつかの理由について、配列私のMatlab関数が配列を受け入れないのはなぜですか?

F([2,3,4]) 

にすべてのポイントのためにその出力を見ることができるように、それに配列を渡すためにしようとしている

function [ res ] = F(n) 
    t = 1.5; 
    res = 0; 
    if n <= 0 
     return; 
    end 
    for i = 0:n-1 
     res = res + power(-1,i)*power(t,2*i+1)/((2*i+1)*factorial(i)); 
    end 
end 

を配列全体に作用し、最初のメンバーの出力のみを与えます。 なぜですか?

編集:私は

res = 0 + n; 
res = res - n; 

に先頭に

res = 0; 

を変更する場合は、アレイ全体の作業を行います。

答えて

1

問題は配列ではありません。あなたの例のベクトル入力のため

function res = F(n) 
    t = 1.5; 
    m = length(n); 
    res = zeros(m, 1); 
    for j = 1 : m 
    for i = 0 : n(j) - 1 
     res(j) = res(j) + power(-1, i) * power(t, 2 * i + 1)/((2 * i + 1) * factorial(i)); 
    end; 
    end; 
end; 

結果:あなたはこのような何かを行うことができ

>> F([2,3,4]) 

ans = 

    0.375000000000000 
    1.134375000000000 
    0.727566964285714 
関連する問題