Adding a new column to an existing csv file via Matlab.
90 ビュー (過去 30 日間)
古いコメントを表示
Hello,
I have a question. I want to add a new column to an existing filename via commants in matlab. The existing file (called 'filename1' ) has 22 columns and 400 rows. I ve created the column that I want to add , whis has 400 rows too. The final output i want to have is a csv file with 23 columns and 400 rows. I used these commands , without results:
M1 = [filename1, num2cell(d1(1:end,7))].'; %transpose important
fid = fopen('gtm.csv','wt');
fprintf(fid,'%15s %.6f\n',M1{:} );
fclose(fid);
the "num2cell(d1(1:end,7))" is the new column that i want to add.
Thanking in advance
0 件のコメント
採用された回答
Kojiro Saito
2019 年 7 月 31 日
You can do it easily with writetable.
Here is an example.
filename1 = 'existingData.csv';
% Read the CSV as a table
t = readtable(filename1);
% Add a new column to the end of the table
numOfColumn = size(t, 2);
newCol = num2cell(d1(1:end,7)); % Your new column
t.(numOfColumn+1) = newCol;
% Change column name if needed
t.Properties.VariableNames{numOfColumn+1} = 'newCol';
% Write to CSV file
writetable(t, 'new.csv')
6 件のコメント
Walter Roberson
2019 年 7 月 31 日
We are telling you that you should stop working with xlsread and should use readtable() to read your data, and use the command we show to add a new column to the table and then writetable the results.
%read file
t = readmatrix('filename1.csv');
% Add a new column to the end of the array
t(:,end+1) = d1(:,7); % Your new column
% Write to CSV file
writematrix(t, 'tabledata.txt')
Notice no xlsread, no cell array.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Text Files についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!