import file with both text and numbers using texscan

Hi,
I am trying to import a .txt file (actually many files) that has 2 header lines, and then a combination and text and numbers. I actually don't care about the header lines. What I do care for are the single number after the S (i.e. the Description), and the following number (Position)
I tried using textscan and looked at the help and some of the previous posts, however, I can't make it work.
Here some of my code:
fileID = fopen('P35_TMS3_Control_VTX_markers.txt');
C_data0 = textscan(fileID, '%s %s %d8 %f %f %s');
fclose(fileID);
Thanks so much for your Help!!
Here the first few lines of the txt file (There's actually no empty lines, but without pressing enter after each line, this message would have looked strange):
----------------------------------------------------------------------------------------
Sampling rate: 1024Hz, SamplingInterval: 0.9765625ms
Type, Description, Position, Length, Channel
Stimulus, S 3, 5333, 1, All
Stimulus, S 1, 9441, 1, All
Stimulus, S 3, 12526, 1, All
Stimulus, S 2, 15610, 1, All
Stimulus, S 3, 24140, 1, All
Stimulus, S 2, 27934, 1, All
Stimulus, S 3, 31019, 1, All

 Réponse acceptée

per isakson
per isakson le 18 Mai 2013
Modifié(e) : per isakson le 18 Mai 2013
The problem is that space is used as delimiter between the second and third column. Your format string, '%s %s %d8 %f %f %s', indicates six columns. However, the header says five columns.
See the documentation on textscan.
Try
>> cac = cssm()
cac =
{7x1 cell} {7x1 cell} [7x1 double] [7x1 double] [7x1 double] {7x1 cell}
>> cac{2}
ans =
'S'
'S'
'S'
'S'
'S'
'S'
'S'
>>
where
function cac = cssm()
fid = fopen('cssm.txt');
cac = textscan( fid, '%s%s%f%f%f%s', 'Delimiter', ', ' ...
, 'Headerlines', 2, 'MultipleDelimsAsOne', true );
fclose(fid);
end
and where cssm.txt contains
Sampling rate: 1024Hz, SamplingInterval: 0.9765625ms
Type, Description, Position, Length, Channel
Stimulus, S 3, 5333, 1, All
Stimulus, S 1, 9441, 1, All
Stimulus, S 3, 12526, 1, All
Stimulus, S 2, 15610, 1, All
Stimulus, S 3, 24140, 1, All
Stimulus, S 2, 27934, 1, All
Stimulus, S 3, 31019, 1, All
.
Or five columns
>> cac = cssm()
cac =
{7x1 cell} {7x1 cell} [7x1 double] [7x1 double] {7x1 cell}
>> cac{2}
ans =
'S 3'
'S 1'
'S 3'
'S 2'
'S 3'
'S 2'
'S 3'
>>
where
function cac = cssm()
fid = fopen('cssm.txt');
cac = textscan( fid, '%s%s%f%f%s', 'Delimiter', ',', 'Headerlines', 2 );
fclose(fid);
end

Plus de réponses (0)

Catégories

En savoir plus sur Characters and Strings dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by