How to read and take a part of data of a text file in MATLAB

Dear everyone,
Please help me to solve this problem. I need to make a code that can read data from a text file. The format of the file is as follows:
0.1 ABC63-820
0.5 ABC63-818
1.0 ABC63-813
I want to take out two variables like this:
X=[0.1 0.5 1.0];
Y=[20 18 13]
Can anyone help me to write a code to take out these data?
Thank you so much!

 採用された回答

Michael Haderlein
Michael Haderlein 2014 年 8 月 20 日

0 投票

Dear Phan,
textscan can do the job:
>> fid=fopen(filename);
>> data=textscan(fid,'%f ABC63-8%d');
>> fclose(fid);
>> x=data{1};y=data{2};
Best regards,
Michael

3 件のコメント

Phan
Phan 2014 年 8 月 20 日
Thank you so much for your help!
But now, my text file becomes more complex, like:
0.1 ABC63-820
0.2 S815
...
1.0 EG813
I want to take out three arrays.
One is the first column: X=[0.1 0.2 ... 1.0].
Another one is the last two digits of the second column: Y=[20 15 ... 13].
The last one is the rest of the second column: Z=[ABC63-8 S8 ... EG8].
How can I do this?
I will appreciate your help. Thanks again!
Michael Haderlein
Michael Haderlein 2014 年 8 月 20 日
It would have been easier if you'd said that right from the beginning.
So now, we first read the second part as string and then split it. There might be different ways to split, but this one will work:
fid=fopen('test1.txt');
data=textscan(fid,'%f %s');
fclose(fid);
x=data{1};
[Z,y]=cellfun(@(x) deal(x(1:end-2),str2num(x(end-1:end))),data{2},'uniform',false);
Y=cell2mat(y);
Phan
Phan 2014 年 8 月 21 日
Thank you so much! I did it!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeCharacters and Strings についてさらに検索

質問済み:

2014 年 8 月 20 日

コメント済み:

2014 年 8 月 21 日

Community Treasure Hunt

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

Start Hunting!

Translated by