MATLAB:向 csv 文件添加新行

时间:2021-01-13 10:21:49

标签: matlab

理论上很简单,但在实践中却异常复杂!还是我遗漏了一些明显的东西?

我导入我的文件 file.csv。它只是 10 个名为 col1 到 col10 的空列(0x10 空表)

file = readtable('~/.../file.csv');

这是我要添加到此文件的新行

newline = {'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten'};

现在我想将此行添加到 file 并将其写回 csv。

我尝试过的解决方案 1

添加一行

file = [file; newline];

然后将 file 写入 csv,使用:

csvwrite('~/.../out.csv',file);

没有。

<块引用>

使用 csvwrite 时出错(第 47 行)未定义函数 'real' 用于输入 'table' 类型的参数。

也许

writetable('~/Dropbox/phd/sleepAnalysis/database/out.csv',file);

没有。

<块引用>

使用 writetable 时出错(第 124 行)输入必须是 字符或字符串标量。

我尝试过的解决方案 2

在写入文件时添加新行

dlmwrite('~/.../out.csv',newline,'-append','delimiter',',');

它确实会写入文件,但它会在左侧为每个字符添加一列。显然不是我(或任何人)在这里之后的样子。

外观:enter image description here

不可能这么难!你能帮忙吗?

1 个答案:

答案 0 :(得分:0)

"writetable" 是正确的解决方案。你只需要把表格放在第一位,然后把文件名放在第二位。

    file = table([],[],[],[],[],[],[],[],[],[],'VariableNames',{'col1','col2','col3','col4','col5','col6','col7','col8','col9','col10'})
    newline = {'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten'};
    file = [file ; newline]
    writetable(file,'out.csv')