如何将字符附加到我现有的 csv 文件?
How do I append a character to my existing csv file?
所以我有一个格式为
的 csv
1,2,3,4,5
6,7,8,9,10
等等。
但是我想做的是在每条记录的末尾附加一个字符串字符,例如
1,2,3,4,5,A
6,7,8,9,10, B
等等。
有没有办法在 matlab/octave 中有效地做到这一点?
对于 matlab,可能的解决方案可能是:
test= readtable('Test.csv');
sz=size(test);
Alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
for i=1:sz(1)
test(i,sz(2)+1)={Alphabet(i)};
end
writetable(test,'Test.csv','Delimiter',',','WriteVariableNames',0);
您要添加的字符串将在变量 Alphabet
中定义,并且 Test.csv
将替换为您的文件名。如果需要,您甚至可以更改分隔符。
您可以使用字母的 ASCII representation 很好地做到这一点。
% Read input table.
inputTable = readtable('q57422719.csv','Format','%s%s%s%s%s');
% Determine number of rows.
nRows = size(inputTable,1);
% ASCII offset for capital A
asciiOffset = 65;
% Create letters vector.
letters = char((asciiOffset:1:asciiOffset+nRows-1)');
% Create output table.
outputTable = inputTable;
% Append letters at end of rows.
outputTable = [outputTable cellstr(letters)];
% Write to file.
writetable(outputTable,'q57422719_output.csv','WriteVariableNames',0);
当然,如果您有超过 26 个字母,那么代码将使用下一个字符([
、\
等等)。
对于输入文件:
1,2,3,4,5
6,7,8,9,10
输出为:
1,2,3,4,5,A
6,7,8,9,10,B
所以我有一个格式为
的 csv1,2,3,4,5
6,7,8,9,10
等等。
但是我想做的是在每条记录的末尾附加一个字符串字符,例如
1,2,3,4,5,A
6,7,8,9,10, B
等等。
有没有办法在 matlab/octave 中有效地做到这一点?
对于 matlab,可能的解决方案可能是:
test= readtable('Test.csv');
sz=size(test);
Alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
for i=1:sz(1)
test(i,sz(2)+1)={Alphabet(i)};
end
writetable(test,'Test.csv','Delimiter',',','WriteVariableNames',0);
您要添加的字符串将在变量 Alphabet
中定义,并且 Test.csv
将替换为您的文件名。如果需要,您甚至可以更改分隔符。
您可以使用字母的 ASCII representation 很好地做到这一点。
% Read input table.
inputTable = readtable('q57422719.csv','Format','%s%s%s%s%s');
% Determine number of rows.
nRows = size(inputTable,1);
% ASCII offset for capital A
asciiOffset = 65;
% Create letters vector.
letters = char((asciiOffset:1:asciiOffset+nRows-1)');
% Create output table.
outputTable = inputTable;
% Append letters at end of rows.
outputTable = [outputTable cellstr(letters)];
% Write to file.
writetable(outputTable,'q57422719_output.csv','WriteVariableNames',0);
当然,如果您有超过 26 个字母,那么代码将使用下一个字符([
、\
等等)。
对于输入文件:
1,2,3,4,5
6,7,8,9,10
输出为:
1,2,3,4,5,A
6,7,8,9,10,B