2011-11-13 8 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 + 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 
관련 문제