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

ファイル名を連結するループ内で、センサー名を のようにかっこでインデックス付けしますstrSensor(3)。これにより、1 つの要素を含む cell 配列が生成されます。

strcat細胞を操作できるので文句はありません。ただし、これはが cell 配列としてもstrcat返されることも意味します。str02あなたは自分自身を納得させることができます

>> class(str02)
ans = cell

cell 配列の内容を実際に取得するには、中かっこでインデックスを付けます。を使用strSensor{x}すると、文字列の内容を処理することになりfopen、入力タイプについて文句を言わなくなります。

于 2013-11-10T17:51:40.163 に答える