/ / Datei in matlab ralativ zum Skriptstandort - matlab laden

Laden Sie die Datei in Matlab relativ zum Ort des Skripts - Matlab

Ich habe ein einfaches Skript in Matlab und möchte eine Datei laden. Es scheint, dass es nur funktioniert, wenn sich die Datei im selben Verzeichnis befindet wie das Skript. Wenn ich die Datei zu einem Verzeichnis hinzufüge, wird sie nicht gelesen.

Beispielsweise:

fileID = fopen("myfile","r" ,"n", "US-ASCII");

aber wenn ich stelle myfile im files:

fileID = fopen("files/myfile","r" ,"n", "US-ASCII");

oder

fileID = fopen("./files/myfile","r" ,"n", "US-ASCII");

Ich bekomme eine -1 als fileID. Datei kann nicht gelesen werden.

Antworten:

1 für die Antwort № 1

Wie in den Kommentaren geschieht dies, weilSie haben höchstwahrscheinlich den Pfad, an dem sich das Skript befand, zu Ihrem MATLAB-Pfad hinzugefügt, aber Sie haben nicht das Unterverzeichnis hinzugefügt, in dem sich die Datei in Ihrem Pfad befand. Aus diesem Grund kann die Datei nicht gefunden werden. Um dies künftig zu vermeiden, müssen Sie das Verzeichnis (d. H. Das Arbeitsverzeichnis), in dem MATLAB derzeit arbeitet, physisch an dem Ort ändern, an dem Ihr Skript gespeichert ist.

Dann sollte die lokale Referenzierung funktionieren. Sie können dies tun, indem Sie entweder die cd Funktion, gehen Sie zum oberen Rand Ihres MATLAB-FenstersKlicken Sie auf den Pfeil nach rechts und wählen Sie ein Dropdown-Menü, um das Verzeichnis zu ändern. Geben Sie das gewünschte Verzeichnis ein, indem Sie auf ein beliebiges leeres Feld in der Verzeichnisliste klicken, um ein Textfeld zu aktivieren:

Bildbeschreibung hier eingeben

... oder wenn Sie den Code im MATLAB-Editor ausführen, werden Sie aufgefordert, die Verzeichnisse zu ändern, da sich das Skript, das Sie ausführen möchten, derzeit nicht im Arbeitsverzeichnis befindet.


0 für die Antwort № 2

Sie können die Unterordner auch programmgesteuert mit Ihrem Skriptverzeichnis hinzufügen mfilename, fileparts, genpath und addpath:

[dir, ~, ~] = fileparts(mfilename("fullpath")); % locate your script directory
addpath(genpath(fullfile(dir))); % add the folder and all subfolders to Matlab search directory

% then load your file.
fileID = fopen("myfile","r" ,"n", "US-ASCII")

Wenn es auch wichtig ist, dass sich alle Ausgaben in demselben Verzeichnis wie Ihre Skriptdatei befinden, können Sie dies tun cd in Ihr Skriptverzeichnis:

cd(dir)