csvファイルに追加で書き込む

86 次查看(过去 30 天)
qrqr
qrqr 2020-2-14
既にあるcsvファイルに場所を指定して書き込む方法がわかりません。
csvファイルのA1:C5に文字、数字が記載してあり(excelで開いたとき)、
D1から新たに追加したいと考えています。
A=[1;2;3;4;5]
dlmwrite('test.csv',A,'-append');
この場合、列ではなく行の最終に追加されてしまいます。
writematrix(A,'test.csv','Sheet',1,'Range','D1:D5')
この場合は 無効なパラメーターsheet。 となります。
どのようにすればよいのでしょうか?

采纳的回答

Kojiro Saito
Kojiro Saito 2020-2-14
dlmwriteのappendやfopen('filename', 'a')だと、ファイルの最後の行に追加になってしまいます。また、writematrixでRangeを指定できるのは、.xls、.xlsm、.xlsxのスプレッドシートファイルのみです。
D1から追加する方法として、例えば以下の2通りがあります。
%% 方法1 Aを元のCSVのtableに結合してからファイルに書き込む
t = readtable('test.csv', 'ReadVariableNames', false);
A=[1;2;3;4;5];
t2 = addvars(t, A);
writetable(t2, 'test.csv', 'WriteVariableNames', false);
%% 方法2 writematrixでRangeを指定して書き込む
m = readtable('test2.csv');
writetable(m, 'test2.xlsx', 'WriteVariableNames', false)
A=[1;2;3;4;5];
writematrix(A, 'test2.xlsx', 'Range', 'D1:D5')
m2 = readtable('test2.xlsx', 'ReadVariableNames', false);
writetable(m2, 'test2.csv', 'WriteVariableNames', false)
ただ、方法2だと.csv⇔.xlsxに変換しないとwritematrixでRange指定ができないので、あまりメリットは無いかと思います。

更多回答(0 个)

产品


版本

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!