2011-11-13 55 views
0

我有以下功能:爲什麼我的Matlab函數不接受數組?

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 

我想一個數組傳遞給它,這樣我可以看到陣列

F([2,3,4]) 

在其每一點輸出出於某種原因,它拒絕在整個陣列上行動,只給我第一個成員的輸出。 這是爲什麼?

編輯:如果我在開始改變

res = 0; 

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

它的工作對整個陣列。

回答

1

問題是res不是數組。您例如向量輸入

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 
相關問題