convert csv file and write to another .m file
Afficher commentaires plus anciens
Hello,
I am having problem reading in this file to matlab.
Data = readtable('100Cr6.csv','NumHeaderlines',0,'DecimalSeparator',',');
FID = fopen('kf100CR6.m', 'w');
fwrite(FID, Data, 'char');
fclose(FID);
i use the following code but it does not run successfully?
every time showing an error message:
"Error using fwrite
Cannot write value: unsupported class table
Error in convertCSV (line 15)
fwrite(FID, Data, 'char');"
i want every data in double notation (like 1231.2354) format in a .m file. so that i can use these as columns or rows of matrix.
Does anyone have a solution to this?
Many thanks.
2 commentaires
Walter Roberson
le 6 Juil 2020
you have columns that have three parts separated by semi-colon. If those are acting as decimal points then you have too many of them. If they are acting as group separation then you appear to be missing a decimal separation.
jonas
le 6 Juil 2020
Réponse acceptée
Plus de réponses (2)
jonas
le 6 Juil 2020
Error message says that table class is not supported. You can pass the content of the table or just read the data as a matrix directly. I would try
Data = readmatrix('100Cr6.csv','NumHeaderlines',1,'DecimalSeparator',',')
dlmwrite('filename.m', Data)
5 commentaires
Arif Ahmed
le 6 Juil 2020
Walter Roberson
le 6 Juil 2020
Add the option
'delimiter', ';'
to the readtable call
Arif Ahmed
le 6 Juil 2020
Arif Ahmed
le 6 Juil 2020
jonas
le 6 Juil 2020
I am getting the expected output.
Data = readmatrix('100Cr6.csv','NumHeaderlines',1,'DecimalSeparator',',')
dlmwrite('kf100CR6.m', Data)
clear all
mdata = load('kf100CR6.m');
size(mdata)
ans =
1248 4
mdata = [log(mdata(:,1)) log(mdata(:,2)) mdata(:,2) mdata(:,3) log(mdata(:,4))];
size(mdata)
ans =
1248 5
Arif Ahmed
le 6 Juil 2020
Modifié(e) : Walter Roberson
le 6 Juil 2020
Catégories
En savoir plus sur Logical dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!