MATLAB:如何用相同的字段列表结构

我使用了一个叫做数据的428×1单元arrays

data = {[1×1 struct] [1×1 struct] .... [1x1 struct]} 

这些结构都具有相同的结构

 data {2,1} >>struct with fields additional_model_information: 'H Series,S3150-S0-AW-04-02-C-F421,' ceiling_fan_size_diameters_in_inches: '60' airflow_efficiency_cfm_watt_low: '727' airflow_efficiency_cfm_watt_high: '392' 

结构字段对于所有428个单元是相同的,并且字段值在每个结构中改变。

我怎么能创build一个表,把所有的结构放在一起,以便它显示每个字段的所有字段值? 使用嵌套for循环吗?

我最终想要将这些数据导出为ex​​cel。

假设你已经有了你的nx1单元格数组。 这种方法并不假定你的数据中有4个字段,或者他们被称为什么的知识。 如果包含一些try / catch逻辑,您甚至可以将其与具有不同字段名的结构一起使用。


您可以使用fieldnames来获取代表结构体的字段名称

 fnames = fieldnames(data{1}); 

然后设置一些输出单元arrays的正确大小

 out = cell(numel(fnames), numel(data)); 

然后使用嵌套循环来循环通过data项目和循环通过字段名称。

 for n = 1:numel(data) for field = 1:numel(fnames) temp = data{n}; out{field, n} = temp.(fnames{field}); end end 

最后,将字段名称作为第一列添加

 out = [fnames, out]; 

并将单元格数组写入您的Excel文件

 % File location, cell array, sheet, cell xlswrite('C:\...\test.xlsx', out, 1, 'A1'); 

怎么样

 T = cell(length(data) , 4); for k = 1 : length(data) T(k , :) = {data{k}.additional_model_information , ... data{k}.ceiling_fan_size_diameters_in_inches, ... data{k}.airflow_efficiency_cfm_watt_low, ... data{k}.airflow_efficiency_cfm_watt_high}; end 

然后你可以使用xlswrite导出到excel。