我想使用for循環將.mat文件的文件夾的名稱按行導出爲一個.csv文件。我想將多個matlab文件的名稱導出爲.csv
我想使用xlswrite,但不明白如何訪問.mat文件的文件名。
我正在將它們寫入csv。
xlswrite(fullfile(dest_dir,'result.csv'), FILENAME HERE, ['A' num2str(i)]);
我想使用for循環將.mat文件的文件夾的名稱按行導出爲一個.csv文件。我想將多個matlab文件的名稱導出爲.csv
我想使用xlswrite,但不明白如何訪問.mat文件的文件名。
我正在將它們寫入csv。
xlswrite(fullfile(dest_dir,'result.csv'), FILENAME HERE, ['A' num2str(i)]);
xlswrite
創建一個Excel工作簿
隨着dir
命令你可以得到其一個領域是文件名的結構。
使用簡單的文件IO功能可以滿足您的要求。
我認爲無論是這會做你需要的東西:
fid=fopen('result.csv','wt');
files=dir('*.mat');
x={files(:).name};
csvFun = @(str)sprintf('%s,',str);
xchar = cellfun(csvFun, x,'UniformOutput', false);
xchar = strcat(xchar{:});
xchar = strcat(xchar(1:end-1),'\n');
fprintf(fid,xchar);
fclose(fid);
或者
如果你只需要在一列形式.mat
名稱:
fid=fopen('result.csv','wt');
files=dir('*.mat');
x={files(:).name};
[rows,cols]=size(x);
for i=1:rows
fprintf(fid,'%s,',x{i,1:end-1});
fprintf(fid,'%s\n',x{i,end});
end
fclose(fid);
爲了讓您的文件名,使用加載命令dir
文件,分別讀取它們在你的for循環,然後寫他們的文件。 (我想我已經張貼這樣的事?)這是原型:
files = dir('*.mat'); % obtain all files with .mat extenstion
fid = fopen('result.csv','a');
for k = 1:length(data)
filename = files(k).name; % get the filename
fprintf(fid, '%s,\n', filename);
end
fid = fclose(fid);
不幸的是,你不能只是保存文件名作爲字符串的細胞,並將其寫入你可能使用的發言權csvwrite
矩陣,所以你可以做到這一點。
你希望所有的'.MAT一列中給定文件夾中的文件? – P0W
只需.mat文件的名稱。 – user2631296