2016-04-24 6 views
0

として文字列を検出しません。Matlabのは、私はプログラム的に私はMATLABで保存したい変数のファイル名を設定しようとしている文字列

私のコードは次のようになります。そして、

pat='pat_1'; 
    filename=strcat('mri_realign_BEM_',pat); 
    save(filename, mri_realign); 

、私はデータ型が正しいかどうかを確認するためにfilenameをチェック:

whos filename
Name Size Bytes Class Attributes

filename 1x16 32 char

は、これまでのところよさそうだが、私はそれを実行しようとすると、私は次のエラーが発生します:

Error using save
Argument must contain a string.

一方、私が作業領域を保存しようとすると、save(filename)、それは正常に動作します。

だから、私は間違って何をやっていますか?

+0

それが良いアイデアだ[あなたが使用する関数のドキュメントを読む](http://www.mathworks.com/help/matlab/ref/ save.html?refresh = true) – excaza

+0

@excaza確かにそれがあり、それが私がやった最初のことです!しかし、ドキュメントは私の問題を解決しませんでした。文字配列は文字列なので、私は関数内に文字列があることを100%確信していました。 – AndrejaKo

+0

問題を解決しました。これは、['filename'](http://www.mathworks.com/help/matlab/ref/save.html?refresh=true#inputarg_filename)と[' variables'](http:// www .mathworks.com/help/matlab/ref/save.html?refresh = true#input_argument_variables)入力は文字列でなければなりません。 – excaza

答えて

2

これは動作するはずです。 2番目の引数は変数の名前である必要があります:

pat='pat_1'; 
    filename=strcat('mri_realign_BEM_',pat); 
    save(filename, 'mri_realign'); 
+0

それはあった!私はシステムが許す限りすぐにこれを受け入れます。 – AndrejaKo

関連する問題