【发布时间】:2014-02-28 22:24:38
【问题描述】:
我被困在试图将 matlab uitable 数据导出到 excel 中。我尝试了很多东西,但一直无法解决这个问题。很多天后,我使用 windows 尝试了下面的代码,它确实可以完美运行,但是,在 Macintosh 上使用相同的代码不再有效。输出如下:
“使用 dlmwrite 时出错(第 118 行)输入元胞数组无法转换为矩阵”
搜索更多信息,我在这里找到了答案,(Using "xlswrite" MATLABs for cell arrays containing strings of different size) 并不完美。最后我发现这个方法只适用于使用 windows 的 matlab (http://www.mathworks.es/matlabcentral/answers/20819-export-uitable-s-data-to-a-spreadsheet-excel)。
希望你能帮我解决这个问题。
提前致谢
赫克托
function Save_File
hf = figure;
hExportButton = uicontrol('Parent',hf,'Units',...
'normalized','Position',[0 0.81 0.22 0.18],'Style','Pushbutton',....
'String',' Export Data!','FontSize',20,'Callback',@ExportButton_Callback);
dat = rand(5,5);
t=uitable('Data',dat,'ColumnName',{'First','Second','Third','Fourth','Fifth'},...
'Position',[7 10 500 300]);
Data=get(t,'Data');
ColumnName=get(t,'ColumnName');
set(t,'ColumnWidth',{93.5})
function ExportButton_Callback(~,~)
NewData= num2cell(Data,ones(size(Data,1),1),ones(size(Data,2),1));
CombData=[ColumnName';NewData];
FileName = uiputfile('*.xls','Save as');
xlswrite(FileName,CombData);
end
end
【问题讨论】:
-
问题可能是你有一个同时包含字符串和数字的数组,这些不能一起放在一个矩阵中,我建议你简单地将文件逐行写为 csv。 Excel可以打开一个csv文件
-
这在 R2013b 中甚至不起作用。不要打扰
xlswrite。您检查过 MathWorks FileExchange 吗?似乎有 several options available 甚至不需要 Excel。
标签: excel matlab user-interface matlab-uitable