Nicht in der Lage zu finden, warum der Fehler "Nicht genügend input-Argumente", Matlab

Stieß ich auf ein problem beim Aufruf der Funktion definiert den code unten.. Nach Matlab habe ich nicht genug input-Argumente in der verschachtelten Funktion Chi, wenn ich verwenden Sie die Funktion, indem Sie in "Awesomefit(V,I,Ierr)". Aber ich kann mir nicht wirklich erklären warum, da alle den Eingang muss die Funktion sollte vorhanden sein.. V, I und Ierr sind Matrizen der 148x1 Doppel-und bekommen initialisiert ist, bevor der Aufruf der Funktion.

Hat jemand eine Idee, was fehlen könnte?

Matlab zeigt auch eine Fehlermeldung in der Zeile mit fminsearch. Ich weiß nicht, ob dies im Zusammenhang zu der anderen Fehlermeldung oder zu Unrecht mit der "fminsearch" - Befehl. Jetzt würde ich denken, es ist die letztere Möglichkeit. Aber das ist definitiv nicht mein Hauptproblem. Ich hoffe, ich kann verkraften, dass sobald ich das andere problem gelöst.

Bitte entschuldigen Sie meine unorthodoxen Programmierstil, aber ich bin ein Physiker versucht zu Programmieren :/ich bin noch gab mein bestes obwohl..

%% do stuff

function a = Awesomefit(V,I,Ierr)

% initialize starting values
A = 1;
Vbd = 25;
n = 1.2;
b = -0.01;
Var = [Vbd n b];

%do stuff
a = fminsearch(Chi,Var);


function Ifit = InotNorm(V,Vbd,n,b)
    Ifit = zeros(size(V));
    for i = 1:length(V)
        if V(i) < Vbd,
            Ifit(i) = 2*10^-12;
        else
            Ifit(i) = A * abs( (V(i)-Vbd) / (V(i)-Vbd+1/(n*b)) )^n;
        end
    end
end


function NM = NormMod(Vbd,n,b)
    NM = sum(InotNorm(V,Vbd,n,b) ./ Ierr);
end


function ND = NormDat(I,Ierr)
    ND = sum(I ./ Ierr);
end


function C = Chi(Vbd,n,b)
    C = sum(( (InotNorm(V,Vbd,n,b) .* NormDat(I,Ierr) ./ NormMod(Vbd,n,b) - I) ./ Ierr ).^2);
end


end
InformationsquelleAutor MSergio | 2015-09-30
Schreibe einen Kommentar