Arrays MATLAB:如何用相同的字段将结构制表
我使用了一个称为data的428×1单元阵列Arrays MATLAB:如何用相同的字段将结构制表,arrays,excel,matlab,Arrays,Excel,Matlab,我使用了一个称为data的428×1单元阵列 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_di
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单元的结构字段都相同,每个结构中的字段值都会发生变化
如何创建一个表,将所有结构放在一起,以便显示每个字段的所有字段值?Pehaps使用嵌套for循环
我最终想将这些数据导出到excel。怎么样
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。如何
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。假设您已经获得了结构的nx1单元数组,数据。此方法不假设您的数据中有4个字段,也不假设您知道这些字段的调用方式。如果包含一些try
/catch
逻辑,甚至可以将其用于具有不同字段名的结构
您可以使用fieldnames
fnames = fieldnames(data{1});
然后设置一些大小正确的输出单元格数组out
out = cell(numel(fnames), numel(data));
然后使用嵌套循环来1。循环查看数据中的项目。
和2。循环查看字段名
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');
假设您已经获得了nx1单元结构数组,data
。此方法不假设您的数据中有4个字段,也不假设您知道这些字段的调用方式。如果包含一些try
/catch
逻辑,甚至可以将其用于具有不同字段名的结构
您可以使用fieldnames
fnames = fieldnames(data{1});
然后设置一些大小正确的输出单元格数组out
out = cell(numel(fnames), numel(data));
然后使用嵌套循环来1。循环查看数据中的项目。
和2。循环查看字段名
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');
您使用的是什么版本的Matlab?您是否真的希望将此数据保存在表格中
,或者只要可以导出到Excel,单元格数组
是否可以工作?MATLAB R2017a。只要我能导出到Excel@Wolfie,你使用的是什么版本的Matlab?您是否真的希望将此数据保存在表格中
,或者只要可以导出到Excel,单元格数组
是否可以工作?MATLAB R2017a。只要我能导出到Excel@wolfiet谢谢你。我得到的回应是:引用不存在的字段“附加模型信息”。无标题(第8行)out{field,n}=temp.(fnames{field})中出错;这意味着data{n}
中的结构不包含字段附加的\u model\u信息
。。。尝试在try中包围out{field,n}
行;out{field,n}=temp.(fnames{field});捕捉;结束代码>。您将得到一个空的单元格元素,您期望该字段,但它将跳过错误。非常感谢。它工作得非常好。我刚刚相信数据{n}中的结构包含数字、文本和浮点值。很高兴我能帮上忙。。。把这个答案标记为接受,如果它解决了你的问题:“我会的。”谢谢,谢谢。我得到的回应是:引用不存在的字段“附加模型信息”。无标题(第8行)out{field,n}=temp.(fnames{field})中出错;这意味着data{n}
中的结构不包含字段附加的\u model\u信息
。。。尝试在try中包围out{field,n}
行;out{field,n}=temp.(fnames{field});捕捉;结束代码>。您将得到一个空的单元格元素,您期望该字段,但它将跳过错误。非常感谢。它工作得非常好。我刚刚相信数据{n}中的结构包含数字、文本和浮点值。很高兴我能帮上忙。。。把这个答案标记为接受,如果它解决了你的问题:“我会的。”非常感谢。