Per poter capire il motivo dell'errore nella lettura occorrono più informazioni sul file e sul formato con il quale i dati sono stati scritti:
[1] è un file ASCII?
[2] il file contiene solo i valori del vettore (o matrice) o ci sono anche delle righe di testo?
[3] nel file è memorizzato più di un vettore? Se si ogni riga del file, ha lo stesso numero di colonne?
In linea di principio, sarebbe opportuno che il nome del file di input non contenesse spazi bianchi e/o caratteri particolari.
Se la risposta alle domande 1 e 3 è affermativa, non dovrebbero esserci difficoltà nell'import dei dati.
Lo script in calce propone, come esempio due modi per importare i dati contenuti in un file ASCII: il file contiene tre colonne di numeri per 100000 righe.
Il primo metodo utilizza il comando "
load"; il secondo il comando "
uiimport".
Lo script risulta un po' lento data la grande quantità di dati da leggere, ma la lettura viene effettuata correttamente in entrambi i casi.
Un'ulteriore alternativa potrebbero essere: cambiare l'estensione del file in ".m" all'inizio una stringa del tipo "
var=[" e, al fondo del file "
];" e "lanciare" il file direttamente dalla CommandWindow.
Extrema ratio: dividere il file in più files con un numero dio righe inferiore, importare i dati e ricostruire il vettore (matrice).
%
% Flag per l'abilitazione del plot dei grafici
%
enable_plot=0;
%
% Creazione dati (3 vettori da 1e05 elementi)
%
t=0:(2*pi)/99999:2*pi;
x=cos(t);
y=sin(t);
%
% Raggruppamento dati in una matrice
%
D=[t;x;y]';
%
% Salvataggio matrice "D" su file ASCII
%
save -ascii data.txt D
%
% Cancellazione dati del workspace
%
clear all
%
% Lettura file ASCII di input con il comando "load"
%
load data.txt
%
% Verifica dell'avvenuta correta lettura
%
whos
%
% I dati letti dal file vengono assegnati ad una matrice avente lo stesso
% nome del file di input (esclsa l'estensione)
%
if(enable_plot)
figure
plot(data(:,2),data(:,3))
grid on
daspect([1 1 1])
end
%
% Cancellazione dati del workspace
%
clear all
%
% Lettura file ASCII di input con il comando "uiimport"
%
uiimport data.txt
%
% Verifica dell'avvenuta correta lettura
%
whos
%
% I dati letti dal file vengono assegnati ad una serie (3 nell'esempio in
% questione) di variabili chiamate "VarNameX" dove "X" è il numero
% progressivo della corrispondente colonna nel file di input
%
if(enable_plot)
figure
plot(VarName2,VarName3)
grid on
daspect([1 1 1])
end
Hope this helps.