How can I write a 2D array into a CSV file

I have read an array from a csv file and done some calculations on that. After that, I want to save the array excactly like the CSV file I read.I would be thankful if anyone could help me with this .I have also attached a sample file. thank You so much
sample=readmatrix('71.csv');
Blank=readmatrix('Blank.csv');
x=sample(1,2:end);
y=sample(2:end,1);
RamanArea=5275.6715;
data=sample(2:end,2:end);
dataBlank=Blank(2:end,2:end);
[numRows,numCols] = size(data);
data=data-dataBlank;
for k = 1:numRows
for l = 1:numCols
data(k,l)=data (k,l)/RamanArea;
end
end
for i = 1:numRows
for j = 1:numCols
if (data(i,j)<=0)
data(i,j)=NaN;
end
end
end
xCSV=numRows+1;
yCSV=numCols+1;
xsvArray=csvArray(xCSV,yCSV);
csvArray(2:end,1)=x;
csvArray(1,2:end)=y;
csvwrite('file.csv',csvArray);
csvwrite('file.csv',x,1,0);
figure();
surf(x,y,data);
colorbar();

3 Commenti

Normally I would say just use writematrix(). However you said "exactly" like the CSV file you read, and the first field of that example file is missing (file starts with a comma). Is the implication that you want missing fields to be output as empty? If so then the NaN values you write in, are those to count as missing values for the purpose of determining whether to write emptiness or not?
Exactly. I want to save the missed values as missing or NaN.the A1 is an empty space.I also have several missing values in the array which should be transfered to csv file. The X starts from B1.
And the Y starts from A2. Thank You

Accedi per commentare.

 Risposta accettata

as_cell = [num2cell([nan, x]); num2cell(csvArray)];
as_cell(cellfun(@isnan, as_cell)) = {''};
writecell(as_cell, 'file.csv')

Più risposte (0)

Categorie

Prodotti

Release

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by