我有一个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操作。如何在没有提取的情况下直接从表中找到单个列?
答案 0 :(得分:0)
对于第1点:您可以使用csvread
直接从.csv文件中读取特定列,而无需加载整个内容。对于您的示例,您可以这样做:
uib-tabset
A = csvread('your_file.csv', 1, 1, [1 1 nan 1]);
允许它读取所有行直到结束(虽然我不确定这是否记录在任何地方)。
使用nan
适用于包含 numeric 数据的文件,尽管它适用于上述示例,即使在.csv文件的第一行和第一列中包含字符条目也是如此。但是,如果您要读取的文件部分是后面的,则包含字符条目的列似乎会失败。使用xlsread
的更一般的解决方案如下:
csvread
对于第2点: csvwrite
或dlmwrite
等内置函数似乎无法附加新的列,只是新< EM>行。但是,您可以使用xlswrite
,即使它是.csv文件。以下是它如何适用于您的示例:
A = xlsread('your_file.csv', 'B:B');
以下是xlswrite('your_file.csv', [{'cumsum'}; num2cell(cumsum(A))], 1, 'D1');
的内容:
your_file.csv