2015-03-24 122 views
3

我在MATLAB一個結構稱爲MYSTRUCT如何將MATLAB中所有結構域的數據類型轉換爲double?

它有以下類以下字段:

Field Class 
a  single 
b  single 
c  double 

我想轉換MYSTRUCT的各個領域類雙,但是當我嘗試時:

double(mystruct) 

我從MATLAB輸出如下:

??? Error using ==> double 
Conversion to double from struct is not possible. 

Futhermore,我給MYSTRUCT作爲只是一個例子。我意識到我可以單獨手動投射每個字段,因爲在這個例子中只有3個字段。我想知道如何做這個轉換爲任何結構在matlab中有很多字段和子字段。

回答

4

您可以使用structfun爲:

mystruct = structfun(@double, mystruct, 'uniformoutput', 0); 
4

對於標量結構(numel(mystruct)爲1),路易斯·Mendo的答案很可能是最好的解決辦法。對於其他結構使用此代碼:

cell2struct(cellfun(@double,struct2cell(mystruct),'uni',false),fieldnames(mystruct),1) 

它將結構轉換爲單元格,然後將每個元素轉換爲double並轉換回結構。

+0

好泛化! – 2015-03-24 23:27:59

相關問題