我正在寻找一种将 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}))
执行转换,但我应该如何将它的输出自动分配给原始变量名称?
如果您能想到一个,也欢迎您提出一种替代方法来转换工作区的所有变量...