Wir arbeiten an einer Zuweisung für Datenkommunikation, wo wir eine Nested Function Handle in Matlab deklarieren müssen. Wir haben ein paar Tests gemacht, wie Matlab damit umgeht, aber nichts funktioniert.Matlab Nested Function Handle
Dies ist einer der Tests:
clear;
f = @(x) x.^2;
d = @(x,u) f(x) + u;
disp(d(x,u));
Mit diesem Test Matlab gibt eine nicht definierte Funktion oder Variable x. Was müssen wir tun, um das zu beheben?
Mit freundlichen Grüßen
Voll Code:
[~, distr] = make_probability_functions(Quantization.filename);
%distr is a matrix of certain values
x_0 = 127.5;
M = 8;
delta= 10:1:30;
q = @(i) x_0+(i-(M+1)/2);
r = @(i) x_0+((2*i-M)*delta)/2;
f = @(u,i) ((q(i)-u).^2)*distr(u);
%GRANULAR
[email protected](delta,i) int(f,u,q(i)-delta/2,q(i)+delta/2);
[email protected](delta) symsum(int_gran(delta,i),i,0,M);
%OVERLOAD
[email protected](delta) int(@(u)f(u,1),u,-inf,q(1)-delta/2)+int(@(u)f(u,M),q(m)+delta/2,inf);
%GKD
[email protected](delta) s_gran(delta)+s_ol(delta);
%plot GKD
plot(delta,s_e(delta),delta,s_gran(delta),delta,s_ol(delta));
Fehler:
Undefined function or variable 'u'.
Error in Quantization>@(delta,i)int(f,u,q(i)-delta/2,q(i)+delta/2)
Error in Quantization>@(delta)symsum(int_gran(delta,i),i,0,M)
Error in Quantization>@(delta)s_gran(delta)+s_ol(delta) (line 59)
[email protected](delta) s_gran(delta)+s_ol(delta);
Error in Quantization.determine_optimal_uniform_quantizer (line 62)
plot(delta,s_e(delta),delta,s_gran(delta),delta,s_ol(delta));
Error in script_run (line 1)
Quantization.determine_optimal_uniform_quantizer();
Ich verstehe, definieren, aber wenn ich will die Funktion d (x, u) passieren im Allgemeinen zu einem Integral zum Beispiel gibt es den gleichen Fehler. Das war nur ein Test, ich werde meine Hauptfrage bearbeiten und den "Haupt" -Code hinzufügen, wo wir den Fehler bekommen. – Joachim
@Joachim Ich denke, was Sie erreichen wollen, ist die Verwendung symbolischer Variablen, Sie können nicht nur den Wert nicht deklarierter Variablen an eine Funktion übergeben, weitere Informationen über [symbolische Variablen hier] (https://de.mathworks.com/help /symbolic/syms.html) – Umar
Genau, was das Problem war. Du hast meinen Tag gemacht, danke! – Joachim