我在matlab中有一个结构名为 mystruct
它包含以下类别的字段:
Field Class
a single
b single
c double
我想将 mystruct 的所有字段转换为类 double ,但是当我尝试时:
double(mystruct)
我从MATLAB得到以下输出:
??? Error using ==> double
Conversion to double from struct is not possible.
此外,我将 mystruct 作为一个例子。我意识到我可以手动单独转换每个字段,因为在这个例子中只有3个字段。我想知道如何在matlab中使用许多字段和子字段将此转换为 double 。
答案 0 :(得分:4)
您可以使用structfun
:
mystruct = structfun(@double, mystruct, 'uniformoutput', 0);
答案 1 :(得分:4)
对于标量结构(numel(mystruct)
是1),Luis Mendo的答案可能是最好的解决方案。对于其他结构,请使用以下代码:
cell2struct(cellfun(@double,struct2cell(mystruct),'uni',false),fieldnames(mystruct),1)
它将结构转换为单元格,然后将每个元素转换为double并转换回结构。