あなたがいくつかの機能を持っているとしましょう
x = foo(alpha, beta);
さまざまなアルファ値に関連付けられた名前でさまざまなx値を保存しながら、さまざまなアルファ値について関数をテストする必要があります。
たとえば、その場合は、別の結果としてalpha = 1:1:10;
保存したいx_1 , x_2 ,........,x_9 , x_10
さまざまなループなどを実行しようとしましたが、x値が置き換えられないようにする方法がわかりません
あなたがいくつかの機能を持っているとしましょう
x = foo(alpha, beta);
さまざまなアルファ値に関連付けられた名前でさまざまなx値を保存しながら、さまざまなアルファ値について関数をテストする必要があります。
たとえば、その場合は、別の結果としてalpha = 1:1:10;
保存したいx_1 , x_2 ,........,x_9 , x_10
さまざまなループなどを実行しようとしましたが、x値が置き換えられないようにする方法がわかりません
これを行うにはいくつかの方法があります
たとえば、結果をディスクに保存する場合は、次のコマンドを実行できます。
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))
割り当てます。foo
x{ii}