7

Octaveでは、スクリプトの実行時にファイルの名前が決定されるテキストファイルに構造体を保存したいと思います。私のアプローチでは、常にエラーが発生します。

expecting all arguments to be strings. 

(固定ファイル名の場合、これは正常に機能します。)では、可変ファイル名を使用して構造体をファイルに保存するにはどうすればよいですか?

clear all;
myStruct(1).resultA = 1;
myStruct(1).resultB = 2;
myStruct(2).resultA = 3;
myStruct(2).resultB = 4;

variableFilename = strftime ("result_%Y-%m-%d_%H-%M.mat", localtime(time()))

save fixedFilename.mat myStruct; 
% this works and saves the struct in fixedFilename.mat

save( "-text", variableFilename, myStruct); 
% this gives error: expecting all arguments to be strings
4

1 に答える 1

6

Octave では、save を関数として使用する場合、次のようにする必要があります。

myfilename = "stuff.txt";
mystruct = [ 1 2; 3 4]
save("-text", myfilename, "mystruct");

上記のコードにより、stuff.txt ファイルが作成され、行列データがそこに配置されます。

上記のコードは、mystruct が行列の場合にのみ機能します。文字列のセルがある場合は失敗します。それらについては、独自のロールを作成できます。

 xKey = cell(2, 1);
 xKey{1} = "Make me a sandwich...";
 xKey{2} = "OUT OF BABIES!";
 outfile = fopen("something.txt", "a");
 for i=1:rows(xKey),
   fprintf(outfile, "%s\n", xKey{i,1});
 end
 fflush(outfile);
 fclose(outfile);
于 2012-08-23T15:31:14.753 に答える