理论上很简单,但在实践中却异常复杂!还是我遗漏了一些明显的东西?
我导入我的文件 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',',');
它确实会写入文件,但它会在左侧为每个字符添加一列。显然不是我(或任何人)在这里之后的样子。
不可能这么难!你能帮忙吗?
答案 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')