在MATLAB中将列添加到.csv
我有一个nxn.csv文件,在其中我找到了一列的累积和。我需要在现有的.csv文件的末尾附加一个带有标题cumsum的列,使其成为nx(n+1)。这怎么可能呢?我附上一份样本:在MATLAB中将列添加到.csv,matlab,Matlab,我有一个nxn.csv文件,在其中我找到了一列的累积和。我需要在现有的.csv文件的末尾附加一个带有标题cumsum的列,使其成为nx(n+1)。这怎么可能呢?我附上一份样本: filename A B aa 23 34 aa 56 98 aa 8 90 aa 7 89 我正在寻找A列的总和 23
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
我这里有两个问题:
1.我每次提取列A以执行累积和运算。如何在不提取的情况下直接从单个列的表中查找它
对于第1点:您可以使用直接从.csv文件中读取特定列,而无需加载整个内容。例如,您可以这样做:
A = csvread('your_file.csv', 1, 1, [1 1 nan 1]);
nan
允许它读取所有行直到结束(尽管我不确定这是否在任何地方都有记录)
csvread
的使用适用于包含数字数据的文件,尽管对于上述示例,即使在.csv文件的第一行和第一列中有字符条目,它也可以正常工作。但是,如果要读取的文件部分后跟包含字符项的列,则该操作似乎失败。使用更通用的解决方案如下所示:
A = xlsread('your_file.csv', 'B:B');
对于第2点:内置函数(如或)似乎无法追加新列,只能追加新行。但是,您可以使用,即使它是.csv文件。下面是您的示例的工作方式:
xlswrite('your_file.csv', [{'cumsum'}; num2cell(cumsum(A))], 1, 'D1');
以下是您的_文件.csv
的内容:
filename,A,B,cumsum
aa,23,34,23
aa,56,98,79
aa,8,90,87
aa,7,89,94
对于第1点:您可以使用直接从.csv文件中读取特定列,而无需加载整个内容。例如,您可以这样做:
A = csvread('your_file.csv', 1, 1, [1 1 nan 1]);
nan
允许它读取所有行直到结束(尽管我不确定这是否在任何地方都有记录)
csvread
的使用适用于包含数字数据的文件,尽管对于上述示例,即使在.csv文件的第一行和第一列中有字符条目,它也可以正常工作。但是,如果要读取的文件部分后跟包含字符项的列,则该操作似乎失败。使用更通用的解决方案如下所示:
A = xlsread('your_file.csv', 'B:B');
对于第2点:内置函数(如或)似乎无法追加新列,只能追加新行。但是,您可以使用,即使它是.csv文件。下面是您的示例的工作方式:
xlswrite('your_file.csv', [{'cumsum'}; num2cell(cumsum(A))], 1, 'D1');
以下是您的_文件.csv
的内容:
filename,A,B,cumsum
aa,23,34,23
aa,56,98,79
aa,8,90,87
aa,7,89,94
由于我的.csv文件是字符和数字值的混合体,我在使用
a=csvread('your_file.csv',1,1,[1 nan 1])时,在第147行出现不匹配错误
由于我的.csv文件是字符和数字值的混合体,我在使用a=csvread('your_file.csv',1,1,[1 nan 1])时在第147行出现不匹配错误代码>