Question about getting text from a file

Hello,
I am creating a program that is gathering information from a file listing data values, an alphanumeric call sign, and date. I can access the data, and am trying to get the call signs in the third column. I would like to use these call signs to group the data values and dates for a plot. The .dat file is similar to this:
-55.00** 6.30** 2086** 2011-11-11 01**<br>
21.70** -17.70** 2AJI3** 2011-11-07 18**<br>
20.20** -17.80** 2AJI3** 2011-11-07 22**<br>
17.50** -17.80** 2AJI3** 2011-11-08 06**
Where * represents a spacing. (not all spacings are the same) So I can get the information from a textread command that puts it all in a 1 by X matrix where x is the total number of lines.
load 'sample.dat';
la = sample(:,1); %gets column 1 from file%
lo = sample(:,2); %gets column 2 from file%
sh = sample(:,3); %gets column 3 from file% (needs to be a string)
yr = sample(:,4); %gets column 4 from file (needs to reflect actual date, or just be a string)%
pos = [la,lo];
data = textread('sample.dat','%s','delimiter','\n','whitespace','');
[col1, col2, col3] = textread('sample.dat','%n%n%n%*[\n]','delimiter',' ');
Now the textread at the bottom will get a col3 that is the correct length, but will truncate everything after the 2 of the third column. So, 2AJI3 will only return as 2 in the matrix I am creating. I would like to try and use textscan, but I have an older version of matlab, and do not know if I can update.
I know this is long, and I apologize, I am just trying to get the most information down that might help. Please be patient with me as I have not done this sort of data sorting before.
Thanks in advance.

 채택된 답변

Fangjun Jiang
Fangjun Jiang 2011년 12월 7일

0 개 추천

I copied your text file data and removed all the "**" and "<br>" and then run the following command. It got all the data in place. I think you can start from there.
>> [a,b,c,d,e]=textread('test.txt','%f %f %s %s %f')
a =
-55.0000
21.7000
20.2000
17.5000
b =
6.3000
-17.7000
-17.8000
-17.8000
c =
'2086'
'2AJI3'
'2AJI3'
'2AJI3'
d =
'2011-11-11'
'2011-11-07'
'2011-11-07'
'2011-11-08'
e =
1
18
22
6

댓글 수: 1

Zach
Zach 2011년 12월 8일
Fangjun,
I had tried that yesterday and had issues with it working, but I got my matlab updated last night, and it seems to work now. Perhaps I had not cleared something as well as I thought. Than you for your prompt reply and your patience.
Zach

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Data Import and Export에 대해 자세히 알아보기

질문:

2011년 12월 7일

Community Treasure Hunt

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

Start Hunting!

Translated by