如何将结构中的名称导出到excel文件?

时间:2016-10-17 23:20:35

标签: matlab

我正在尝试导出结构

'bc26bi5010conus.tif'   49028417    false   736617.740439815    '14-Oct-2016 17:46:14'
'bc26bi501conus.tif'    49028417    false   736617.740393519    '14-Oct-2016 17:46:10'
'bc26bi502conus.tif'    49028417    false   736617.740451389    '14-Oct-2016 17:46:15'

我想将名称(第一列)导出到Excel工作表中。

我该怎么做?我尝试了3件事:

xlswrite('test.xls', allFiles)
Error using xlswrite (line 165)
Input data must be a numeric, cell, or logical array.

第二

xlswrite('test.xls', allFiles.name)
    Error using xlswrite (line 206)
    Invalid data range: BC26BI502CONUS.TIF.

最后,

for i = 1:length(allFiles) 
        tempData{i} = allFiles(i).name;
        dlmwrite('headers.csv', tempData{i}, '-append')
end

这是将文件名的字母放在单独的单元格中。 (例如b c 2 6 b i 5 0 1 0 c .....)

可能的解决方案:

fid = fopen('a.txt','wt');
fprintf(fid, '%s \n', allFiles.name);
fclose(fid);

2 个答案:

答案 0 :(得分:0)

我认为您与for循环和fprintf接近。

fid = fopen('headers.csv','wt');

for i = 1:length(allFiles) 
        tempData = allFiles(i).name;
        fprintf(fid, '%s \n', tempData);
end

fclose(fid);

答案 1 :(得分:0)

allFiles.name的结果是comma-separated list。它应该转换为单元格数组:

xlswrite('test.xls', {allFiles.name})