【问题标题】:Merging different size csv files合并不同大小的csv文件
【发布时间】:2018-06-05 09:40:46
【问题描述】:

我正在努力让数据分析 + 导入 Excel 变得更加容易。 我有 3 种不同的数据类型,分别称为 data1、data2、data3。 我将它们存储在一个单元格数组中,measurements = cell(3,99) “3”代表3种不同类型的数据,每个数字1-99代表我测量的一个对象。

我正在尝试将每种类型的所有文件合并在一起,因此我有 1 个用于 data1 的 Excel 文件、1 个用于 data2 的文件和 1 个用于 data3 的文件。

data1 和 data2 是行向量,而 data3 是二维矩阵。每个条目可以有不同的大小(尽管没有一个有意义的大)。

我目前的尝试:

for ii=1:99
      data1File = sprintf('data1_%d.csv',ii);
      data2File = sprintf('data2_%d.csv',ii);
      data3File = sprintf('data3_%d.csv',ii);
      csvwrite(data1File, measurements{1,ii});
      csvwrite(data2File, measurements{2,ii});
      csvwrite(data3File, measurements{3,ii});
  end 

这只是给了我每种数据类型的 99 个 csv 文件,效率极低。我尝试了许多不同的方法来合并它们(例如,dlmwrite),但都没有成功。

也试过了:

cell2csv('data1.csv',measurements(1,:), ',','2018','.');

奇怪的是,这仅适用于 data1,尽管 data2 也表示为行向量。但是,data1 包含更大的数字(通常接近 5.1*10^4),所以我认为小数点可能改变了一些东西。 我整天都在尝试这个问题,但没有运气。有什么建议吗?

【问题讨论】:

    标签: matlab export-to-csv cell-array


    【解决方案1】:

    您是否尝试过在这段代码中将“{”更改为“(”?并删除 for 循环。

    csvwrite(data1File, measurements{1,ii}); %change this to this
    csvwrite(data1File, measurements(1,:)); %and get it out of the for loop
    

    然后它将测量的输出视为 1 个数组,而不是 99 个不同的单个输出。

    您的 data1File 创建了 99 个不同名称的文件,因此您当然将拥有 99 个不同的文件。

    *edit,这是用于 dlmwrite 的:
    另外,当您尝试将某些内容附加到文件时,您需要使用“-append”添加。

    csvwrite(data1File, measurements(1,:),'-append'); %like so
    

    如果这不能解决问题,我建议查看文件交换,这是我找到的Cell2csv

    【讨论】:

    • 我写了:csvwrite(data1File, measurements(1,:), '-append'); ,它给出了错误:“无效的属性标签:”我不完全确定这是什么意思,你熟悉这个错误吗?
    • 删除附加,因为这是我的错误,它应该用于 dlmwrite 而不是 csvwrite。对不起,我的错误。
    • 别担心!我自己应该能够抓住它。我已经成功使用代码cell2csv('data1.csv',measurements(1,:), ',' , '2018' , ' . '); 转换了第一种数据类型。但是,对于 data2,完全相同的代码不起作用。 data2 中的每个元素都是与 data1 长度相同的行向量。唯一的区别是 data1 是双精度数,每个元素约为 5-6 位,而 data2 是个位整数。您知道为什么会发生这种情况吗? cell2csv 将转换 data2,除了作为随机耦合整数的长列表。很奇怪。
    • 想通了!我使用“固定宽度”选项而不是“分隔”来显示数据。还不知道这意味着什么,但它有所帮助。感谢您的所有帮助!
    • 我不久前投了赞成票。不幸的是,年轻账户的投票对公众是隐藏的。
    猜你喜欢
    • 1970-01-01
    • 2018-11-16
    • 2018-08-07
    • 2021-05-04
    • 1970-01-01
    • 1970-01-01
    • 2019-08-28
    • 2012-12-08
    • 1970-01-01
    相关资源
    最近更新 更多