【问题标题】:importing several text files into excel spreadsheet using matlab使用matlab将几个文本文件导入excel电子表格
【发布时间】:2016-06-10 10:57:50
【问题描述】:

我有几个包含 2 列的文本文件,其中仅包含我想使用 matlab 导入到单个 Excel 电子表格(Excel 2016)中的数字。使用 matlab (R2014a) 的原因是因为我后来有了处理数据的脚本,以及我稍微熟悉的唯一编程语言。 我尝试使用以下 Using matlab to save a 100 text files to a one excel file but into different spread sheet? 但我只是无法理解任何东西,因为我是一个新手,我认为这个例子是为了制作几个 excel 文件,而我只想要一个。谢谢您的帮助!非常感谢。

【问题讨论】:

  • 您能提供一个示例文本文件吗?询问此问题的原因是要知道文本文件中两列之间的间距。此外,当您阅读第二个文本文件时,您是否希望同一工作簿(或)同一工作簿中的同一工作表中的新工作表中的数据?如果同一工作簿中的同一张工作表,是否要将从第二个文本文件中读取的数据放在从第一个文本文件中读取的数据下?
  • 1) 我希望数据在同一张工作表和同一个工作簿中 2) 第二个文本文件中的数据应该在第一个文本文件中的数据旁边。因此,第 1 列和第 2 列中的第一个文本文件数据和第 3 列和第 4 列中的第 2 个数据文件等等........示例文件的链接在此链接filedropper.com/an050me

标签: excel matlab import text-files spreadsheet


【解决方案1】:
content = dir();
col = 1;
for i = 1:10
    if content(i).isdir ~= 1
        fileID = fopen('AN050ME.ASC');
        data = textscan(fileID, '%s %s');
        fclose(fileID);
        datum(:, col) = data{1};
        col = col + 1;
        datum(:, col) = data{2};
        col = col + 1;
        clear data;
    end
end

filename = 'Datum.xls';
sheet=1;
xlswrite(filename, datum, sheet, 'A1');
close all;

这是基本的工作算法,您需要进一步改进以优化速度

提示: 1. 根据文件的数量预先声明数据的大小。 2.如果你必须阅读的所有文件都具有相同的扩展名,只读 他们通过 dir()

祝你好运

【讨论】:

  • 非常感谢。由于我是新手,我将您的一些初始代码更改为我更熟悉的代码。我确实得到了我想要的 Excel 电子表格,但 1)我还将逗号放入我想删除的 Excel 单元格中。我读了一些关于在“textscan”中使用“分隔符”的内容,但我不知道该怎么做。另外2)是否可以将excel文件的第一行作为包含asci文件名称的标题?我总是很难弄清楚这一点。
  • all_files=dir('*.asc'); col=1; for k=1:1:length(all_files); filename=all_files(k).name; fid=fopen(filename); data = textscan(fid,'%s %s'); fclose(fid); datum(:, col) = data{1}; col = col + 1; datum(:, col) = data{2}; col = col + 1; clear data; end filename = 'Datum.xls'; sheet=1; xlswrite(filename, datum, sheet, 'A1'); close all;
  • sparts = strread(desired_string, '%s', 'delimiter', ','); sparts(0) 将有逗号之前的字符串部分
  • 回答你的第二个问题 datum(2:1002,:) = datum(1:1001,:);将所有元素向下推送一行,然后使用下面的一个在末尾写入标题 xlswrite(filename,"your file name",sheet,'A1');
  • 非常感谢您的建议。我在 Matlab 文档上读到建议使用 textscan 而不是 strread 所以为了更好地熟悉自己,我尝试了以下操作:
猜你喜欢
  • 2015-03-28
  • 1970-01-01
  • 2015-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-13
相关资源
最近更新 更多