Pagina 1 di 1

Acquisizione di dati con MATLAB

Inviato: 8 lug 2008, 18:57
da fesem
Salve a tutti,
mi trovo nella condizione di dover acquisire dei dati con Matlab a partire da un file di testo strutturato nella seguente maniera:

-dato inutile- <------inizio del 1° gruppo di 10 dati(di cui 4 utili)
-dato inutile-
-dato da acquisire-
-dato inutile-
-dato da acquisire-
-dato inutile-
-dato inutile-
-dato da acquisire-
-dato da acquisire-
-dato inutile- <------fine del 1° gruppo
-dato inutile- <------inizio del 2° gruppo di 10 dati(di cui sempre 4 utili, allo stesso posto dei primi)
-dato inutile-
-dato da acquisire-
-dato inutile-
-dato da acquisire-
-dato inutile-
-dato inutile-
-dato da acquisire-
-dato da acquisire-
-dato inutile- <------fine del 2° gruppo


...e così via per un certo numero di gruppi, sempre da 10 dati e con i dati da acquisire sempre allo stesso posto all'interno del gruppo; la mia domanda è: esiste una procedura automatizzata che riesca ad acquisire solo i dati che mi interessano(in questo caso quelli alla 3°,5°,8° e 9° riga in ogni gruppo )? e se si, è possibile organizzare questi dati in vettori a seconda della posizione in cui si trovano all'interno del file? (ad esempio facendo in modo che tutti i terzi elementi di ogni gruppo mi vadano in un vettore, tutti i quinti in un altro ecc.)
Vi ringrazio in anticipo

Re: Acquisizione di dati con MATLAB

Inviato: 9 lug 2008, 17:44
da rini
si esiste un metodo!! In matlab si può fare di tutto.
basta fare dei cicli in base al numero massimo di gruppi si riesce ad automatizzare tutto, o addirittura anche senza gruppi, basta vedere quando si raggiunge la fine del file (EOF). Prova ad imbastire il codice, che ti do una mano a farlo.

Re: Acquisizione di dati con MATLAB

Inviato: 9 lug 2008, 22:14
da fesem
ho trovato un metodo più semplice: salvo il file in formato .dat e utilizzando la OPEN lo trasormo in un vettore, poi con il comando RESHAPE mi creo la matrice da cui estrarre i vettori che mi interessano, comunque grazie per la tua disponibilità!

Re: Acquisizione di dati con MATLAB

Inviato: 10 lug 2008, 9:30
da rini
invece ecco la mia soluzione, leggo direttamente il file lo metto tutto dentro ad un vettore e poi tramite un ciclo li sistemo in vettore diversi.

Codice: Seleziona tutto

clc; clear all;
f1=fopen('prova.txt','r');
v = fscanf(f1,'%f',inf);
fclose(f1);
b=round(length(v)/10);
for i=1:b
    vett3(i) = v(3+10*(i-1));
    vett5(i) = v(5+10*(i-1));
    vett8(i) = v(8+10*(i-1));
    vett9(i) = v(9+10*(i-1));
end


Se non capisci qualcosa chiedi pure... ciao

Re: Acquisizione di dati con MATLAB

Inviato: 10 lug 2008, 11:07
da fesem
in effetti la tua soluzione è molto più elegante... :lol:

Re: comando MATLAB per sostituire un dato in un file dati

Inviato: 24 nov 2009, 14:26
da valeomina5
ciao!avrei bisogno di un'informazione,qualcuno conosce quel comando in matlab che mi permette di scorrere i dati contenenti in un file (nel mio caso è un .lua),presumendo che questo contenga un elenco di dati, e che mi sostituisca i/il valori/e che voglio io senza cancellare o modificare gli altri, in modo da modificare in seguito solo quel comando?
Il comando dovrebbe esssere del tipo "%6.2f" dentro a fprintf o fread.. ho provato a guardare nell'Help di Matlab ma non è molto chiaro.grazie!