Extracting particular rows and column from bunch of excel files and saving into one file
조회 수: 2 (최근 30일)
이전 댓글 표시
Hi,
I have bunch of excel files in the folder with a lot of data in them, only data is useful to me is in columnn 3 of each file. First row of each file is the header and I do not want to include the header in the extracted data so I want 3 column from each file and 2:1002 data in rows from every single file and after extraction want to save it in different csv file so I can further analyse the data. Trying since morning but still sucks to come up with the proper script. Need help!
Code tried so far:
folder = fullfile('C:','Users','muhammad','Desktop','Velocity');
files = dir( fullfile(folder, '*.csv') );
for ii = 1:length(files)
data = csvread(fullfile(folder,files(ii)));
res=youranalysisfunction(data([2:1002]:3));
end
Error:
Error using fullfile (line 67)
All inputs must be strings, character vectors, or cell arrays of character vectors.
Error in ExtractColumns (line 8)
data = csvread(fullfile(folder,files(ii)));
댓글 수: 0
채택된 답변
Ameer Hamza
2020년 11월 29일
편집: Ameer Hamza
2020년 11월 29일
files(ii) is a struct. You need to access the name property
data = csvread(fullfile(files(ii).folder,files(ii).name))
Also, on newer versions, it is better to use readmatrix(), you can skip the header line directly
folder = fullfile('C:','Users','muhammad','Desktop','Velocity');
files = dir( fullfile(folder, '*.csv') );
for ii = 1:length(files)
data = readmatrix(fullfile(files(ii).folder,files(ii).name), 'NumHeaderLines', 1)
res=youranalysisfunction(data(:,3));
end
댓글 수: 5
Ameer Hamza
2020년 11월 30일
I am not sure why it is reading 9 instead of 15 columns. Can you attach a file?
"this line only giving me 1 column at the end"
You mentioned in your question that you only want 3rd column.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Data Import from MATLAB에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!