How to convert a .mat file into a .csv file?
103 次查看(过去 30 天)
显示 更早的评论
I have a .mat file loaded in workspace. I want to convert it into .csv file.
FileData = load('Trainset.mat');
csvwrite('FileName.csv', FileData.M);
I used the above method to convert but i get this error. >> csv_Con Reference to non-existent field 'M'.
Error in csv_Con (line 2) csvwrite('FileName.csv', FileData.M);
>> >> >>
采纳的回答
Walter Roberson
2016-4-6
FileData = load('Trainset.mat');
fields = fieldnames(FileData);
for K = 1 : length(fields)
thisvar = fields{K};
thisdata = FileData.(thisvar);
if ~isnumeric(thisdata)
warning('Skipping field %s which is type %s instead of numeric', thisvar, class(thisvar));
else
thisfile = sprintf('FileName_%s.csv', thisvar);
csvwrite(thisfile, thisdata);
end
end
1 个评论
Ola Fekry
2022-2-19
Plz I have a RF signal dataset of 220000 .mat file how can I put them in CSV file to be used in classification learner app for evaluation?
更多回答(2 个)
Azzi Abdelmalek
2016-4-6
FileData = load('Trainset.mat');
v=reshape([FileData.M],size(FileData))
csvwrite('FileName.csv', v)
0 个评论
MBD4FUN
2016-4-6
Don't know if this is what you are looking for but here is one way of solving this problem.
FileData = load('Trainset.mat');
% get all varaible names
varNameList = fields(FileData);
% create a csv file to dump all data
fid = fopen('Trainset.csv','wt')
% write header if you prefer
fprintf(fid,'ColumnA,ColumnB');
for i = 1:length(varNameList)
switch lower(FileData.(varNameList{1}).class)
case 'char'
% write data to CSV file
fprintf(fid,'%s,%s\n');
case 'double'
% do whatever you want with the double
% ...and write data to CSV file
fprintf(fid,'%s,%s\n');
% ...
end
end
% close CSV file
fclose(fid);
BTW, you might want to consider wrap up this block of code in a function ;-)
Happy scripting,
MBD4FUN
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Convert Image Type 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!