How can I import a file that contains text and numerical values?

2 ビュー (過去 30 日間)
Ryan
Ryan 2013 年 8 月 6 日
Hi Everyone,
I need your help. I'm writing a program that must pull data from a very large file that is formatted like this:
  • 1 1 10230435 3 red no no 1 5 yes
  • 3 4 23423423 4 blue no yes 2 3 no
  • 4 2 23433554 5 red no no 4 2 yes
  • 2 5 23434234 7 green no yes 4 5 no
This is just a sample. The real data actually has 15 columns and has thousands of rows. I have tried the following ways to read the data.
if true
% s = load('Mfile.m')
% fid = fopen('Mfile.m','r')
% s = fscanf(fid,'%s')
% fid = fopen('Mfile.m','r')
% s = fscanf(fid,'%f')
% s = xlsread('Mfile.xls')
end
The load and fscanf commands give me errors. The xlsread assigns all of the text NaN values. I'm running out of ideas, so any help is greatly appreciated.
Thanks!
  1 件のコメント
Ryan
Ryan 2013 年 8 月 6 日
Also I have tried textscan like this,
  • fid = fopen('Mfile.m','r')
  • a = textscan(fid,'%d %d %d %d %s %s %s %d %d %s')
But I receive a matrix with no values.

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

採用された回答

dpb
dpb 2013 年 8 月 6 日
Lose the blanks in the format string--that's causing grief in trying to match them in the parsing...
>> fid=fopen('ryan.txt','r');
>> a=textscan(fid,'%d%d%d%d%s%s%s%d%d%s')
a =
Columns 1 through 7
[4x1 int32] [4x1 int32] [4x1 int32] [4x1 int32] {4x1 cell} {4x1 cell} {4x1 cell}
Columns 8 through 10
[4x1 int32] [4x1 int32] {4x1 cell}
>> a{1}
ans =
1
3
4
2
>> frewind(fid)
>> b=textscan(fid,'%d%d%d%d%s%s%s%d%d%s','collectoutput',1)
b =
[4x4 int32] {4x3 cell} [4x2 int32] {4x1 cell}
>> b{1}
ans =
1 1 10230435 3
3 4 23423423 4
4 2 23433554 5
2 5 23434234 7
>> fid=fclose(fid);
BTW, why on earth would you name a text file with an ".m" extension???
  1 件のコメント
Ryan
Ryan 2013 年 8 月 6 日
Thanks! And I couldn't tell you honestly. I switched it to .txt

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

その他の回答 (1 件)

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 8 月 6 日
fid=fopen('fic.txt')
out=textscan(fid,'%f %f %f %f %s %s %s %f %f %s')
fclose(fid)

カテゴリ

Help Center および File ExchangeData Import and Export についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by