Import alphanumeric data from .txt

2 vues (au cours des 30 derniers jours)
Umberto
Umberto le 22 Oct 2012
Hi,
I'm searching to extract datas from a .txt.
The txt. is an instrument output that give me something like this:
02062012025000 0R0,Hp=0.0M,Th=9.8C,Vh=0.0N,Vs=13.4V,Vr=3.484V,Id=Hel
02062012025100 0R0,Hp=0.0M,Th=10.0C,Vh=0.0N,Vs=13.4V,Vr=3.485V,Id=Hel
02062012025200 0R0,Hp=0.0M,Th=10.0C,Vh=0.0N,Vs=13.4V,Vr=3.485V,Id=Hel
02062012025300 0R0,Hp=0.0M,Th=10.6C,Vh=0.0N,Vs=13.4V,Vr=3.485V,Id=Hel
02062012025400 ,Hp=0.0M,Th=10.0C,Vh=0.0N,Vs=13.4V,Vr=3.485V,Id=Hel
02062012025500 Vs=13.4V,Vr=3.484V,Id=Hel
02062012025600 0R0,Hp=0.0M,Th=10.0C,Vh=0.0N,Vs=13.4V,Vr=3.485V,Id=Hel
02062012025700 9C,Hp=0.0M,Th=10.0C,Vh=0.0N,Vs=13.4V,Vr=3.484V,Id=Hel
02062012025800 0.0M,Th=10.1C,Vh=0.0N,Vs=13.4V,Vr=3.484V,Id=Hel
02062012025900 =Hel
02062012026000 p=0.0M,Th=10.8C,Vh=0.0N,Vs=13.5V,Vr=3.484V,Id=Hel
The first four lines complete.
The next lines contain errors.
I want to extract for each parameter (Time,Th,Vh,Vs,Vr) an array with his values at each line. Where there is no value Nan could be ok.
I tryed with readtext.m but without results.
Thank you

Réponse acceptée

Pedro Villena
Pedro Villena le 22 Oct 2012
Modifié(e) : Pedro Villena le 23 Oct 2012
fid=fopen('test_data.txt');
str = textscan(fid,'%s %s\r',inf);
fclose(fid);
timeStr = cell2mat(str{1});
Time = str2num(timeStr(:,9:end)); %%last 5 digits
for i=1:length(str{1}),
dataStr = cell2mat(str{2}(i));
id = regexp(dataStr,{'Th=','Vh=','Vs=','Vr='});
for j=1:length(id),
if ~isempty(id{j}),
Data(i,j) = sscanf(dataStr(id{j}+3:end),'%f');
else
Data(i,j) = Data(i-1,j);
end
end
end

Plus de réponses (1)

Umberto
Umberto le 12 Nov 2012
Thank you,
sorry for the dalay! I tested the function for long time and than I forgot to answer.
Thank again! Umberto

Catégories

En savoir plus sur Tables dans Help Center et File Exchange

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by