如何在 MATLAB 中将所有"double"值隐藏为"single"?



在我的matlab工作空间中,我有结构、单元和变量。需要转换所有";双";将值键入";单个";类型值。

例如

4x33 double

我需要去

4x33 single

我已经使用过这样一段代码:

s = whos;
disp(s)
for i = 1:length(s)
if strcmp(s(i).class,'double')
name = s(i).name;
disp(name);
assignin('base', name, single(evalin('base', name)));
end
end

它对存储在我的工作区中的变量很有效,但问题是它无法达到存储在structs中的工作区的值。

我怎样才能做到这一点?

将双精度转换为单精度的方法是

CCD_ 1。

您可以将single用作structfun:

a.c=5;
b=structfun(@single,a)

最新更新