How to select and read csv data file using uigetfile?
41 ビュー (過去 30 日間)
古いコメントを表示
I want to implement select and read file using uigetfile. How can I implment in my code to read the data?
clc
clear all
[file,path,~]=uigetfile('*.csv');
T=fullfile(path,file);
T = readtable(T);
T.Time=minutes(T.Time)
1 件のコメント
Jan
2021 年 10 月 6 日
warning off is an extremely bad idea. Warnings are essential und useful.
Your code contains an import of the files already. So what exactly is your question?
採用された回答
Mathieu NOE
2021 年 10 月 6 日
編集済み: Mathieu NOE
2021 年 10 月 6 日
hello
if you want to grad multiple files with uigetfile, you can do that :
% It is important to grab the files in ascending order
file_list = uigetfile('*.csv', 'Grab the files you want to process', 'MultiSelect', 'on');
if iscell(file_list) == 0
file_list = {file_list};
end
but I find more efficient to use this , in order to load automatically all files once sorted properly (what matlab is not good at)
how to use it : (example)
%% read multiple files
P = pwd; % currrent directory
S = dir(fullfile(P,'*.csv')); % get list of files in directory
fileNames_sorted = natsortfiles({S.name}); % sort file names into order (https://fr.mathworks.com/matlabcentral/fileexchange/47434-natural-order-filename-sort)
nFiles = numel(fileNames_sorted);
for k = 1:nFiles
F = fullfile(P, fileNames_sorted{k});
S(k).data = csvimport(F); % or READTABLE or whatever.
end
% Take a look in the structure S: it contains all of your file data and the corresponding filenames, just as you require.
% For example, the 2nd filename and its data:
S(2).name
S(2).data
% Accessing and processing this will be much simpler than messing around with dynamically named variables.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Data Acquisition Toolbox Supported Hardware についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!