2009-10-05 10 views
-2

Quand je lance le code suivant:arguments d'entrée Trop dans Matlab

xdata2 = [1 3 4 5]; 
ydata2 = [3 9 76 73]; 
params = [0.1 0.5 0.0 -0.5 0.2 0.8]; 
y = svenssontest2(xdata2,ydata2,params,0.636,1.9632); 

Je reçois le message d'erreur « Trop d'arguments d'entrée », mais le nombre d'arguments d'entrée est correcte. Voici le code de la fonction svenssontest2:

function [alpha L1 L2] = svenssontest2(tau,Y,params,L1,L2) 

tau=tau.'; 
Y=Y.'; 

nObs=length(Y); 

%z=1; 

%for(j =1:50) 

    %L2=j/200+0.01; 

    %for(k=1:50) 

    % L1=k/200+0.01; 

     Lev1= [params(1)*ones(nObs,1) params(2)*(1-exp(-params(5).*tau))./(params(5).*tau) params(3)*((1-exp(-params(5).*tau))./(params(5).*tau)-exp(-params(5).*tau)) params(4)*((1-exp(-params(6).*tau))./(params(6).*tau)-exp(-params(6).*tau))]; 

     Y=Y-Lev1; 

     G= [ones(nObs,1) (1-exp(-L1.*tau))./(L1.*tau) (1-exp(-L1.*tau))./(L1.*tau)-exp(-L1.*tau) (1-exp(-L2.*tau))./(L2.*tau)-exp(-L2.*tau)]; 

     alpha =G\Y; 
     u=Y-G*alpha 
     stderr=sqrt(diag((u'*u)/(length(Y)-4)*pinv(G'*G))); 
     Sum_u2 = sum(u.^2); 
     Res(1,:) = [Sum_u2 alpha' L1 L2]; 
    % z=z+1; 

    % end 
+0

Veuillez modifier pour placer xdata2, ydata, etc comme code juste avant l'appel de la fonction pour faciliter la reproduction. La décélération de la fonction doit également être placée dans le code. Une fois que cela a été fait localement, je suis arrivé cette erreur: ??? Erreur lors de l'utilisation de ==> dimensions de la matrice moins doivent être d'accord. Erreur dans ==> svensontest2 à 20 Y = Y-Lev1; Cela n'a rien à voir avec le message d'erreur déclaré dans la question, et implique en fait que le message d'erreur revendiqué ne se produit pas depuis que nous l'avons introduit dans la fonction. Veuillez vérifier les étapes de reproduction. – MatlabDoug

Répondre

6

Vous avez probablement un autre fichier, avec le même nom et nombre différent d'arguments, quelque part dans vos paramètres de chemin, avant le chemin de ce fichier. Parce que les fichiers sont recherchés de haut en bas, l'autre fichier est trouvé en premier, provoquant cette erreur.

+0

J'ai eu un fichier nommé pdist2.m dans mon dossier actuel et comme indiqué par George il a en quelque sorte donné une erreur lorsque je voulais appeler la méthode knnsearch de matlab. J'ai simplement supprimé ce fichier du dossier actuel car je n'en ai plus besoin. Puis tout a été résolu pour moi. – milkersarac