horchler is indeed correct. You first need to open up the file with fopen
which provides a file ID / pointer to the actual file. You'd then use this with textscan
. Also, you really only need one output variable because each "column" will be placed as a separate column in a cell array once you use textscan
. You also need to specify the delimiter to be the ,
character because that's what is being used to separate between columns. This is done by using the Delimiter
option in textscan
and you specify the ,
character as the delimiter character. You'd then close the file after you're done using fclose
.
As such, you just do this:
File = [LOCAL_DIR 'filetoread.txt'];
f = fopen(File, 'r');
C = textscan(f, '%s%f%f', 'Delimiter', ',');
fclose(f);
Take note that the formatting string has no spaces because the delimiter flag will take care of that work. Don't add any spaces. C
will contain a cell array of columns. Now if you want to split up the columns into separate variables, just access the right cells:
names = C{1};
num1 = C{2};
num2 = C{3};
These are what the variables look like now by putting the text you provided in your post to a file called filetoread.txt
:
>> names
names =
'a'
'aa'
'abb'
'ability'
'about'
>> num1
num1 =
142
3
5
3
2
>> num2
num2 =
5
0
0
0
0
Take note that names
is a cell array of names, so accessing the right name is done by simply doing n = names{ii};
where ii
is the name you want to access. You'd access the values in the other two variables using the normal indexing notation (i.e. n = num1(ii);
or n = num2(ii);
).