在MATLAB中将列添加到.csv

时间:2017-06-19 14:54:55

标签: matlab

我有一个nxn .csv文件,其中我找到了一列的累积总和。我需要将带有标题库的此列附加到现有.csv文件的末尾,以使其成为nx(n + 1)。怎么可以这样做?我附上一个samaple:

    filename     A      B
     aa          23     34
     aa          56     98
     aa          8      90
     aa          7      89

我找到了A栏的简历

      23
      79
      87
      94

我需要将此列附加到.csv的末尾

    filename     A      B     cumsum
     aa          23     34       23
     aa          56     98       79
     aa          8      90       87
     aa          7      89       94

我这里有两个问题: 我每次都在提取A列以执行cumsum操作。如何在没有提取的情况下直接从表中找到单个列?

  1. 如何在现有表的末尾创建一个新列,以添加带有标题“cumsum”的cumsum列?

1 个答案:

答案 0 :(得分:0)

对于第1点:您可以使用csvread直接从.csv文件中读取特定列,而无需加载整个内容。对于您的示例,您可以这样做:

uib-tabset

A = csvread('your_file.csv', 1, 1, [1 1 nan 1]); 允许它读取所有行直到结束(虽然我不确定这是否记录在任何地方)。

使用nan适用于包含 numeric 数据的文件,尽管它适用于上述示例,即使在.csv文件的第一行和第一列中包含字符条目也是如此。但是,如果您要读取的文件部分是后面的,则包含字符条目的列似乎会失败。使用xlsread的更一般的解决方案如下:

csvread

对于第2点: csvwritedlmwrite等内置函数似乎无法附加新的,只是新< EM>行。但是,您可以使用xlswrite,即使它是.csv文件。以下是它如何适用于您的示例:

A = xlsread('your_file.csv', 'B:B');

以下是xlswrite('your_file.csv', [{'cumsum'}; num2cell(cumsum(A))], 1, 'D1'); 的内容:

your_file.csv