将分隔符添加到 csv 文件 MATLAB 的每一行的末尾

Posted

技术标签:

【中文标题】将分隔符添加到 csv 文件 MATLAB 的每一行的末尾【英文标题】:Add a delimiter to end of each line of csv file MATLAB 【发布时间】:2017-02-01 11:42:46 【问题描述】:

我正在附加到一个 csv 文件。当前代码输出一行:a;b;c;d 我需要它来输出 a;b;c;d; 注意额外的';'在 d 结束时。这很重要

 matrix = [a,b,c,d]
 dlmwrite('matrix.csv', matrix, 'delimiter',';','-append','roffset',0, 'precision',14)

任何帮助将不胜感激。 我不得不将变量 a、b、c 和 d 保留为数字,或者它使它成为一个字符向量(或其他东西),这让我的 csv 看起来很有趣

【问题讨论】:

1.- 为什么需要 csv 看起来“漂亮”?你只是在存储数据。 2.-为什么你需要最后的;?如果你再添加更多的行,你很可能会破坏阅读代码。 它运行到另一个软件中,该软件将每一行作为一个数组读取。如果每一行的末尾没有';',该软件就会崩溃 我的建议:使用fprintf,格式正确 【参考方案1】:

我一直在使用 MatLab 内置 CSV 写入方法时遇到问题。为什么不编写自己的 .CSV 编写方法?

在这里,你可以创建一个类似的函数:

function write_to_csv(filepath, matrix)
  csv = fopen(filepath, 'a+'); % check what sort of open you'd like : https://uk.mathworks.com/help/matlab/ref/fopen.html#inputarg_permission
  for ii = 1 : numel(matrix)   % this loop depends on the dimensions of your matrix
    fprintf(csv, '%s;', matrix(ii)); % check fprintf return type, depending on the data in the matrix : https://uk.mathworks.com/help/matlab/ref/fprintf.html?searchHighlight=fprintf&s_tid=doc_srchtitle#inputarg_formatSpec
  end 
  fclose(csv);
end

这适用于您提供的一维矩阵,运行:

write_to_csv('matrix.csv',matrix)

【讨论】:

嘿伙计,很好的答案!谢谢!你能帮我看看这个问题吗? ***.com/questions/41981820/…

以上是关于将分隔符添加到 csv 文件 MATLAB 的每一行的末尾的主要内容,如果未能解决你的问题,请参考以下文章

如何将分隔符添加到 csv 文件

将csv文件格式的数据传到SQL2008数据库中后,表中的每一列都带有双引号,这个双引号怎样才能去掉?

将 CSV 导入 MATLAB 的正确科学记数法

如何使用python访问csv文件中的每一列

获取 CSV 文件并按天将其保存到单独的 MATLAB 文件中

熊猫在巨大的csv的每一列中找到独特元素的数量