matlab のワークスペース全体をクラス (たとえば ) にキャストする方法を探していますdouble
。簡単にするために、「単純な」クラスのみがワークスペースに存在すると仮定します (セルや構造体はありません)。もちろん、行ごとに移動して各変数を変更することもできますが、x=double(x)
数百の変数がある場合、それは実用的ではありません。これは私がこれまでに書いたものです:
% # generate some variables of different classes
a1=int32(120);
a2=single(rand(10));
a3=double(rand(20));
a4=(rand(5)>0.5); %# logical
% # collect workspace variables using `whos`
ws=whos;
for ii=1:size(ws,1)
[ ? ] = double(eval(ws(ii).name))
end
最後の行double(eval(ws{1,ii}))
はキャストを実行しますが、その出力を元の変数名に自動的に割り当てるにはどうすればよいですか?
ワークスペースのすべての変数をキャストする別の方法を提案することも歓迎します.