2010-01-01 9 views
5

Grundsätzlich habe ich 10 Dateien und ich schrieb eine MATLAB-Funktion, um diese Daten zu verarbeiten. Der Code ist wie folgt:Wie gebe ich eine Zeichenfolge als Funktionsargument in MATLAB?

function Z = fitdata(file_path) 

    A = importdata(file_path,','); 
    ... 

end 

Da ich den gleichen Befehl 10 mal eingeben möchten nicht (für unterschiedliche Dateinamen), schrieb ich ein anderes Skript diese Verarbeitung zu automatisieren. Der Code sieht wie folgt aus:

function X = automate() 

    myarray = {'file_one', 'file_two', 'file_three',......,'file_ten'}; 
    for i = 1:9 
    mypath = myarray{i}; 
    W = fitdata(mypath); 
    ... 
    end 

end 

Aber ich bin immer die Fehlermeldung „Zu viele Eingabeargumente“ auf den Aufruf der fitdata (file_path) -Funktion.

Wie soll ich das tun?

+0

Entschuldigung für den Fehler. Es war 'Importdaten' in meinem Code. Aber ich bekomme immer noch den Fehler. Ich habe sogar versucht, fitdata ('file_one', ',') aus der Matlab-Befehlszeile einzugeben, aber der Fehler bleibt bestehen. – ablimit

+0

Mit Ihrer Syntax scheint nichts offen zu sein. Sind Sie sicher, dass 'importdata()' nicht an Ihrer Datei erstickt? Versuchen Sie 'importdata ('my_file_1', ',')' in der MATLAB-Befehlszeile. –

+0

importdata() ist OK. Wenn ich einen String wie folgt deklariere: file_path = 'filename' und importdata (file_path, ','), dann funktioniert es. Ich denke, das einzige Problem ist, wie man eine Zeichenfolge als Argument an eine Funktion übergeben. – ablimit

Antwort

4

EDIT: Da die Vorschläge unten nicht lösen das Problem, und da es nicht mit dem Code noch etwas falsch zu sein scheint Sie auf dem Laufenden, würde ich als nächstes überprüfen, um die Version von fitdata stellen Sie sicher, oben angegebenen ist die nur Funktion dieses Namens auf dem MATLAB-Pfad. Möglicherweise haben Sie versehentlich eine andere Funktion oder ein anderes Skript erstellt und es als fitdata.m gespeichert. Dies wird möglicherweise anstelle der oben erstellten Version aufgerufen.


Zurück Antwort:

Ich glaube, Sie meinen die IMPORTDATA Funktion anstelle von IMPORT zu verwenden, die die wahrscheinliche Ursache des Fehlers ist Sie bekommen.

Ein weiterer Tipp: Es ist am besten, keine Ihrer Variablen path zu nennen, da es bereits eine Funktion PATH gibt. Die Variable wird am Ende anstelle der Funktion verwendet (basierend auf der MATLAB precedence rules), die immer noch das ist, was Sie in diesem speziellen Fall passieren möchten, aber in anderen Fällen eine Quelle der Verwirrung und des Fehlers ist.

+0

Danke für Ihre Antwort. – ablimit

Verwandte Themen