0

我正在尝试在 matlab 中打开一个文件,其中文件名存储为字符串。我的源代码是

strSensor={'AF3','F7','F3','FC5','T7','P7','O1','O2','P8','T8','FC6','F4','F8','AF4'};
[rowsS,colsS]=size(strSensor);
for x=1:colsS
    str02=strcat(str01,strSensor(x));
    str02=strcat(str02,'.txt');
    str02
    fid=fopen(str02,'at');
    fprintf(fid,sumf(col));
end

str01 的初始值为

str01='D:\Dropbox\data\';

它由用户给出的值、斜杠 (\) 和数组的其余部分连接起来,以便我可以访问文件

我得到的错误是

Error using fopen
First input must be a file name of type char, or a file identifier of
type double.

Error in sensorprocessing (line 35)
    fid=fopen(str02,'at');

我正在使用 Matlab2013a

我打印了 str02 的值,它是

str02 =  'D:\Dropbox\data\alpha\AF3.txt'

**编辑我弄清楚为什么数组从末尾开始,循环中没有 X,但我有 colsS。所以这是固定的。该文件仍然无法读取。

4

1 回答 1

3

在连接文件名的循环内,使用括号为传感器名称索引,如 in strSensor(3),这会产生一个包含一个元素的元胞数组。

strcat不会抱怨,因为它可以在细胞上操作。但是,这也意味着它strcat也将str02作为元胞数组返回。你可以说服自己

>> class(str02)
ans = cell

要真正获取元胞数组的内容,请使用花括号对其进行索引。如果您使用strSensor{x},您将使用字符串内容并fopen停止抱怨输入类型。

于 2013-11-10T17:51:40.163 回答