Making loop for a function 'xlsread'
이전 댓글 표시
Hi,
I have many files
1.csv, 2.csv, 3.csv.................................39.csv
How can I make a simple loop to convert them all together.
I simply want to obtain
data1=xlsread('1.csv');
data2=xlsread('2.csv');
data3=xlsread('3.csv');
.
.
.
.
data39=xlsread('39.csv');
I have tried to make its loop but I am getting stuck.
q = dir('Data/*.csv');
filenames = {q.name};
nfiles = length(filenames);
for i=1:nfiles
thisfile=filenames{i};
end
Kindly if someone can assist.
regards
댓글 수: 1
Use a DataStore:
"I simply want to obtain"
Numbering lots of variable names like that is one way that beginners force themselves into writing slow, complex, inefficient, obfuscated, buggy code that is hard to debug. Best avoided.
The MATLAB approach is to use indexing. Indexing is simple and efficient, unlike what you are trying to do.
채택된 답변
추가 답변 (1개)
Chuguang Pan
2024년 3월 5일
편집: Chuguang Pan
2024년 3월 5일
xlsread is not recommended, you can use readtable/readmatrix/readcell depend on what type of data you want to read.
The following code may be helpful:
q = dir('Data/*.csv');
filenames = {q.name};
Datas=cell(numel(filenames),1);
for i=1:length(filenames)
Datas{i}=readtable(filenames(i));
end
댓글 수: 1
Dyuman Joshi
2024년 3월 5일
Datas=cell(39,1);
Hard coding values is not optimal.
Use numel() or size().
카테고리
도움말 센터 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!