MATLAB: How to import a file that contains text and numerical values

loadMATLABtext file

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!

Best Answer

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???