Convert all csv in a folder to .mat

I have several csv files in one folder and I want to convert them all to .mat format?
Is it possible to do that at once?

 采纳的回答

Jan
Jan 2021-2-3
编辑:Jan 2021-2-4
Folder = 'D:\YourFolder';
FileList = dir(fullfile(Folder, '*.csv'));
for iFile = 1:numel(FileList)
% [TYPO FIXED]: [name, ext] ==> [~, name, ext]
[~, name, ext] = fileparts(FileList(iFile).name);
data = readtable(fullfile(Folder, [name, ext]));
save(fullfile(Folder, [name, '.mat']), 'data');
end

10 个评论

Thank you! Also, once I have my .mat files, if I want for all the files to remove the first line , how can I apply this to all the files in my folder? myfile(1,:) = []
I get an error message for your conversion script above, it's looking for txt files
Error using readtable (line 223)
Unable to open file
'C:\mypath\aFileInTheFolder.txt'
there are not txt files in my Folder only .csv (coma delimited)
My code processes .csv files only:
FileList = dir(fullfile(Folder, '*.csv'));
If your code does somoething else, please post your code, such that we can search for the problem.
"once I have my .mat files, if I want for all the files to remove the first line" - the first line of what? Maye you mean the first line of data ? readtable() was just a suggestion. Use a method, which matchs your needs.
I know, I only have .csv files in my folder, that's why I don't understand that I get an error message unable to open file and it wants to open a .txt file (giving my the name of my first file in my folder but with .txt at the end rather than .csv), is there a default that I need to change in the code you gave me?
This was y typo in my code. Please try the fixed version above.
now my other question ;-) it's kind of unrelated but now I would to delete the first row of data for all those .mat data files....
What about inserting this in the code above:
data(1, :) = [];
yes I saw that too but to do it on all the files in my folder at once?
This suggestion does it during the creation already. Then you do not have to do it again. But the code looks similar to the one of my answer:
Folder = 'D:\YourFolder';
FileList = dir(fullfile(Folder, '*.mat'));
for iFile = 1:numel(FileList)
FileData = load(fullfile(Folder, FileList(iFile).name));
data = FileData.data;
data(1, :) = [];
save(fullfile(Folder, [name, '.mat']), 'data');
end

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Standard File Formats 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by