MATLAB: Fopen() in R2008 does not use variables

fopenMATLAB

I am trying to open a series of text files and I am getting the 'Invalid filename' error. This is the code:
[FName,PathName,FilterIndex] = uigetfile('C:\temp\matlab\data','MultiSelect','on');
% read in input file
% the input data is one col of floats in text
for f = 1:length(FName)
filename = strcat('C:\temp\matlab\data\', FName(f))
fid = fopen(filename,'rt');
data = fscanf(fid, '%f', 90000 );
fclose(fid);
....
This is what I get for filename:
filename =
'C:\temp\matlab\data\sample0.txt'
I did some debugging and I can open the files one by one if I put the string literal as the first argument to fopen().
Questions:
Does this function only take string literals in R2008?
If so, is there a workaround?
Using MATLAB Version 7.6.0.324 (R2008a)
Thanks,
Ed

Best Answer

The FName output in your uigetfile call is a cell array. When you use parentheses to index into a cell array the result is also a cell array. Calling strcat on a cell array and a char array results in a cell array. fopen does not accept a cell array as its first input.
Instead use curly braces to extract the contents of the cell in FName, which will be a char array. Calling strcat on a char array and a char array results in a char array that fopen can accept.
sample = {'abc'; 'def'; 'ghi'}
xCell = sample(1)
xChar = sample{1}
yCell = strcat(xCell, '123')
yChar = strcat(xChar, '123')
whos