/ / Carica il file in matlab ralativo nella posizione dello script - matlab

Carica il file in matlab ralativo nella posizione dello script - matlab

Ho un semplice script in MATLAB e voglio caricare un file. Sembra che funzioni solo se il file si trova nella stessa dir dello script. Se aggiungo il file a una directory, non lo legge.

Per esempio:

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

ma quando ho messo myfile in files:

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

o

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

Ottengo un -1 come un ID file. Il file non può essere letto.

risposte:

1 per risposta № 1

Secondo i commenti, questo sta accadendo perchémolto probabilmente hai aggiunto il percorso di dove si trovava lo script nel tuo percorso MATLAB ma non hai aggiunto la sottodirectory in cui il file era nel tuo percorso. Questo è il motivo per cui non riesce a trovare il file, quindi per evitare ciò in futuro, è necessario modificare fisicamente la directory (ovvero la directory di lavoro) di dove MATLAB sta attualmente operando dove è archiviato lo script.

È allora che il riferimento locale dovrebbe funzionare. Puoi farlo usando il cd funzione, andando in cima alla finestra di MATLABdove vedi l'elenco delle directory, fai clic sulla freccia a destra e trascina un menu a discesa per cambiare la directory, digitando la directory corrente desiderata facendo clic su qualsiasi spazio vuoto nell'elenco delle directory per abilitare una casella di testo:

inserisci la descrizione dell'immagine qui

... o se stai eseguendo il codice nell'editor MATLAB, ti chiederà di cambiare directory poiché lo script che stai tentando di eseguire non si trova attualmente nella directory di lavoro.


0 per risposta № 2

Puoi anche aggiungere a livello di codice le sottocartelle nella directory degli script usando mfilename, fileparts, genpath e 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")

Se è anche importante che tutte le uscite siano posizionate nella stessa directory del file di script, è possibile cd nella tua directory di script:

cd(dir)