2016-04-11 23 views
0

Bitte helfen Sie mir die folgenden Fehler loszuwerden:Warum ist x undefiniert?

result_g_p1 = conv_test(@g_p1); 

Mein g_p1.m:

function endpoint = g_p1(x) 
    endpoint = -8/(x^3); 
end 

error: 'x' undefined near line 3 column 8 
error: called from 
conv_test at line 3 column 2 
MAIN at line 17 column 1 
error: evaluating argument list element number 1 
error: called from 
conv_test at line 3 column 2 
MAIN at line 17 column 1 

Innerhalb von main.m ich einfach anrufen

conv_test.m:

function conv_test_result = conv_test(g) 
    if (g(x) > 1) && (g(x) < 0) <--- Line 3 
     conv_test_result = fprintf('Convergent Test Result: The function is monotonically convergent! \n'); 
    elseif (g(x) > -1) && (g(x) < 0) 
     conv_test_result = fprintf('Convergent Test Result: The function is oscillatory convergent! \n'); 
    else (g(x) > 1) 
     conv_test_result = fprintf('Convergent Test Result: The function is divergent! \n'); 
    end 
end 

Ich weiß nicht, warum sagt es x nicht definiert ist, weil ich klar g_p1 innerhalb von conv_test passieren.

Antwort

1

Die Funktion g_p1 sieht gut aus; In conv_test_result übergeben Sie jedoch eine Funktion und dann diese Funktion für eine Variable x, die nicht definiert ist. Sie müssen x einen Wert in conv_test_result vor der Auswertung g(x) geben.

+0

Ihr Wert ist in ** g_p1 ** definiert und dieser "Endpunkt" wird in conv_test als ** x ** übergeben. – Micard

+0

In '' main'' rufen Sie '' conv_test'' mit dem Parameter auf (die Funktion '' g_p1''). Innerhalb von '' conv_test_result'' wird diese Funktion nun '' g'' genannt. In Zeile 3 versucht man, '' g'' (also '' g_p1'') mit dem Parameter '' '' '' auszuwerten, aber Sie haben noch keinen Wert für '' x'' innerhalb von '' zugewiesen conv_test'', so dass das Programm nicht weiß, welcher Wert in '' g_p1'' übergeben werden soll. –

Verwandte Themen