2

あなたがいくつかの機能を持っているとしましょう

x = foo(alpha, beta);

さまざまなアルファ値に関連付けられた名前でさまざまなx値を保存しながら、さまざまなアルファ値について関数をテストする必要があります。

たとえば、その場合は、別の結果としてalpha = 1:1:10; 保存したいx_1 , x_2 ,........,x_9 , x_10

さまざまなループなどを実行しようとしましたが、x値が置き換えられないようにする方法がわかりません

4

1 に答える 1

2

これを行うにはいくつかの方法があります

たとえば、結果をディスクに保存する場合は、次のコマンドを実行できます。

alpha = 1:10;

for ii=1:length(alpha)

  x = foo(alpha(ii),beta);

  %# save to disk
  save(sprintf('run_%i.mat',ii),'x');

end

代わりに、すべての出力を保存して、たとえばプロットできるようにする場合は、それらを配列に保存できます

alpha = 1:10;
x = zeros(size(alpha));

for ii=1:length(alpha)

  x(ii) = foo(alpha(ii),beta);

end

%# now you can plot the results
plot(alpha,x)

上記は、の出力fooがスカラーであると想定していることに注意してください。出力が常にm-by-n配列である場合は、として初期化xし、各ループzeros(m,n,length(alpha))を割り当てます。x(:,:,ii)出力が異なるサイズの配列である場合はx、セル配列として初期化し、の出力をにx = cell(size(alpha))割り当てます。foox{ii}

于 2012-09-23T21:27:42.270 に答える