2015-01-29 2 views
1

말을 정의되지 않은 :matlab에 내가 다음 코드가 변수

function[w1, d1] = fit1 
w1 = rand(1); 
d1 = rand(1); 

과 기능 fit2 : Undefined function or variable 'w1'.

:

function[w2, d2] = fit2 
w2 = w1+0.2; 
d2 = d1-0.1; 

나는 오류가 발생 기능 fit1

[w1, d1]=fit1; 
    for i = 1:10, 
     p = w1*d1+i; 
     C(i,:) = p; 
    end 

[w2, d2]=fit2; 
    for i = 1:10, 
     q = w2*d2+i; 
     D(i,:) = q; 
    end 

그러나 w1fit2이 호출되기 전에 정의되어 있습니다. 왜 이것이 작동하지 않습니까?

감사합니다.

답변

5

이것은 fit2 함수가 w1d1 변수를 알지 못하기 때문입니다. 모든 함수는 자신의 변수 공간을 가지고 있습니다.이 공간은 입력 인자와이 함수 안에 정의 된 변수로 구성됩니다. 함수 fit2에는 입력이 없으므로 변수를 알지 못합니다. 위해서는 코드를 당신이 (이 함수 내에서 사용하는) 2 개 입력하도록 fit2을 수정해야합니다, 일 :

[w2, d2]=fit2(w1,d1); 
:

function[w2, d2] = fit2(w1,d1) 
w2 = w1+0.2; 
d2 = d1-0.1; 

를 그리고 그것으로 호출 입력 인수입니다

관련 문제