Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MATLAB中将列添加到.csv_Matlab - Fatal编程技术网

在MATLAB中将列添加到.csv

在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

我有一个nxn.csv文件,在其中我找到了一列的累积和。我需要在现有的.csv文件的末尾附加一个带有标题cumsum的列,使其成为nx(n+1)。这怎么可能呢?我附上一份样本:

    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以执行累积和运算。如何在不提取的情况下直接从单个列的表中查找它

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

  • 对于第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行出现不匹配错误