How to read alphanumeric(alphabetic+numeric) columns to MatLab?
9 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Chathu
el 12 de En. de 2015
Comentada: Chathu
el 14 de En. de 2015
I want to read data from a 'txt' file to MatLab. Please note that 3 columns of this 'txt' file consist of numerical values and the remaining column is an alphanumeric column (eg: 01f500000309, 01f50000030a ). I want to extract all those 4 columns to MatLab with their headers. I tried tblread,tblwrite but none of them worked. Any suggestions?
1 comentario
Stephen23
el 14 de En. de 2015
Your comments to Per Isakson's answer indicate that it really would be simpler if you uploaded the data file, or a shortened version of it, so that we can try it for ourselves. Please make a comment here (to your question), with an upload of the data file.
Respuesta aceptada
per isakson
el 12 de En. de 2015
Editada: per isakson
el 14 de En. de 2015
Try textscan
fid = fopen( 'cssm.txt' );
cac = textscan( fid, '%f%f%s' ...
, 'CollectOutput', true ...
, 'Delimiter' , ',' );
[~] = fclose( fid );
where cssm.txt contains
1, 2, 01f500000309
3, 4, 01f50000030a
 
>> cac{:}
ans =
1 2
3 4
ans =
'01f500000309'
'01f50000030a '
 
 
Addendum
fid = fopen( 'cssm.txt' );
hdr = textscan( fid, '%s%s%s%s', 1 ...
, 'CollectOutput', true ...
, 'Delimiter' , ',' );
cac = textscan( fid, '%f%f%f%s' ...
, 'CollectOutput', true ...
, 'Delimiter' , ',' );
[~] = fclose( fid );
hdr{:}
cac{:}
outputs
ans =
'Num1' 'Num2' 'Num3' 'Char1 '
ans =
17 1 2
18 3 4
ans =
'01f500000309'
'01f50000030a'
where cssm.txt contains
Num1,Num2,Num3,Char1
17, 1, 2, 01f500000309
18, 3, 4, 01f50000030a
 
Second addendum
>> importdata cssm.txt
ans =
'Num1 Num2 Char1 ABCDEFGHIJK ABCDEFGH ABCDEF ABCDEFGH '
'1 2 xxxxxxxxxxxx 192.168.20.2 UDP 60 01f600000234'
'3 4 yyyyyyyyyyyy 192.168.20.2 UDP 60 01f600000234'
The script below outputs
ans =
'ABCDEFGHIJK' 'ABCDEFGH' 'ABCDEF' 'ABCDEFGH'
ans =
'192.168.20.2' 'UDP'
'192.168.20.2' 'UDP'
ans =
60
60
ans =
'01f600000234'
'01f600000234'
>>
fid = fopen( 'cssm.txt' );
hdr = textscan( fid,'%*s%*s%*s%s%s%s%s', 1 ...
, 'CollectOutput', true );
cac = textscan( fid,'%*s%*s%*s%s%s%f%s', inf ...
, 'CollectOutput', true );
[~] = fclose( fid );
hdr{:}
cac{:}
where cssm.txt contains
Num1 Num2 Char1 ABCDEFGHIJK ABCDEFGH ABCDEF ABCDEFGH
1 2 xxxxxxxxxxxx 192.168.20.2 UDP 60 01f600000234
3 4 yyyyyyyyyyyy 192.168.20.2 UDP 60 01f600000234
6 comentarios
per isakson
el 14 de En. de 2015
Editada: per isakson
el 14 de En. de 2015
@Chathu, Still confused about what you have and what you want, I have added another example based on your recent comment. That should be enough for you to solve your problem with the help of the documentation on textscan. If you have the Stat Toolbox you might want to look at dataset
Más respuestas (1)
Image Analyst
el 12 de En. de 2015
Try readtable() if you have R2013b or later:
t = readtable(filename);
Ver también
Categorías
Más información sobre Data Import and Export en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!