Matlab帮助:我正在尝试将所有50个点导出为CSV。如何在每次迭代后附加csv文件?
%import csv file
filename = 'Q:\Electroporation\raw_works.csv';
delimiter = ',';
startRow = 2;
%% Format for each line of text:
formatSpec = '%s%f%f%f%f%f%f%f%f%f%[^\n\r]';
%% Open the text file.
fileID = fopen(filename,'r');
%% Read columns of data according to the format.
dataArray = textscan(fileID, formatSpec, 'Delimiter', delimiter, 'TextType', 'string', 'HeaderLines' ,startRow-1, 'ReturnOnError', false, 'EndOfLine', '\r\n');
%% Close the text file.
fclose(fileID);
%% Create output variable
rawworks = table(dataArray{1:end-1}, 'VariableNames', {'Name','One','Two','Three','Four','Five','Six','Seven','Eight','Nine'});
%% Clear temporary variables
clearvars filename delimiter startRow formatSpec fileID dataArray ans;
到目前为止MATLAB中的数据。
% store data into a variable
table= rawworks;
array=str2double(table2array(table)); % convert to array
ss= size(array)
N= ss(1)
ones=ones(50,14);
xls=zeros(50,14);
现在我进行数学运算
for i= 1:N
A=[array(i,2) array(i,3) array(i,4);array(i,5) array(i,6) array(i,7);array(i,8) array(i,9) array(i,10)];
%diognalize
[U,S,V]=svd(A);
P1=S(1,1);
P2=S(2,2);
P3=S(3,3);
%output data
data_for_excel_file=[A(1,1) A(1,2) A(1,3) A(2,1) A(2,2) A(2,3) A(3,1) A(3,2) A(3,3) P1 P2 P3 P1/P2 P1/P3 ]
这里是我遇到问题的地方。如何将csvwrite附加到%file的末尾。目前,它只写出最后的结果,而不是全部50个。
csvwrite('Diognalized_output.csv',data_for_excel_file,1) %HELP
end
答案 0 :(得分:0)
如果您可以使用更通用的函数dlmwrite
,则可以使用其-append
标志每次将输出添加到文件末尾。
从
更改您的最后一行csvwrite('Diognalized_output.csv',data_for_excel_file,1)
到
dlmwrite('Diognalized_output.csv,data_for_excel_file,'-append')
dlmwrite
的默认分隔符是逗号(,
),因此您可以在此处获得相同的输出格式。