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 commentaires

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?
Behrad Ze
Behrad Ze le 17 Fév 2022
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.
Behrad Ze
Behrad Ze le 17 Fév 2022
And the Y starts from A2. Thank You

Connectez-vous pour commenter.

 Réponse acceptée

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

Plus de réponses (0)

Catégories

Produits

Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by