How to make calculations between two specific files via loop?

1 view (last 30 days)
Ivan Mich
Ivan Mich on 12 Mar 2021
Commented: Ivan Mich on 12 Mar 2021
Hello,
I have a question about a code. I have in a directory some .xlsx files and some .txt files. I want to make calculations between xlsx files and .txt files. The problem is that I want to make these calculations via a loop depending on the name characters.
I want my code to
1)Read xlsx files and txt files
2)Make calculations between files that have only the same 4 characters of their name (for example one file has name: 'AGR3upto10km.xlsx' and the one other 'AGR3upto10kmmeano10km.txt' - I mean "AGR3")
I want to do operations only between files that have the first 4 characters in their names same. After that I want to find the other two characters with the same 4 characters in their name and make operations etc..
I use importdata for .txt and xlsread for .xlsx files
Could you please help me?
  2 Comments
Ivan Mich
Ivan Mich on 12 Mar 2021
Look, I have as I said multiple .txt and .xlsx files. I want to take 2 files (one .txt and one .xlsx) that have same 4 charactres of their name. (Lets say 'AGR3upto10km.xlsx' and the one other 'AGR3upto10kmmeano10km.txt' ) . after that I want to take files 'GRA3upto10km.xlsx' and the one other 'GRA3upto10kmmeano10km.txt' and make calculations. etc

Sign in to comment.

Accepted Answer

Jan
Jan on 12 Mar 2021
Folder = 'C:\Your\Folder';
XLSList = dir(fullfile(Folder, '*.xlsx'));
TXTList = dir(fullfile(Folder, '*.txt'));
TXTName = {TXTList.name};
for k = 1:numel(XLSList)
name = XLSList(k).name;
match = strncmp(TXTName, name(1:4), 4);
if nnz(match) ~= 1
fprintf('No unique match for %s\n', name);
continue;
end
TXTFile = fullfile(Folder, TXTName{natch});
XLSFile = fullfile(Folder, name);
... Now do what you want with them
end

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by