how to load files which are listed in a cell array

10 visualizzazioni (ultimi 30 giorni)
hello everyone,
I am doing aerodynamic computations. The blade i'm workin on is composed of several airfoils.
The airfoils data are contained into excel files. I have a total of 50 files.
However, i am trying to load each file for each section of the blade using for loop but i did not succeed.
I used the method given here:
Hence, i have the names of the files but i did not succeed to load each of the files.
Here the error i get:
>> names = dir('C:\........\BEMT_\airfoil_properties_*.xlsx');
>> filenames={names.name};
>> filenames(3)
ans =
'airfoil_properties_02.xlsx'
>> M=xlsread(filenames(3));
Error using xlsread (line 121)
File name must be a string.
Could you help me please ?
Best Regards

Risposta accettata

Rik
Rik il 3 Mar 2023
Modificato: Rik il 3 Mar 2023
The filenames variable is a cell array, so you need {} to index the contents:
M=xlsread(filenames{3});
But it is better to use the struct returned by dir directly, as it allows you to include the path:
M=xlsread(fullfile(names(3).folder,names(3).name));
  6 Commenti
nado
nado il 4 Mar 2023
Modificato: nado il 4 Mar 2023
the problem is that the MATLAB i'm usin is R2015a, so the field folder does not exist for the struct names.
>>> ver
----------------------------------------------------------------------------------------------------
MATLAB Version: 8.5.0.197613 (R2015a)
MATLAB License Number: $$$$$$$$$$$$$$$$$$$$$$$$$$$
Operating System: Microsoft Windows 10 Pro Version 10.0 (Build 17763)
Java Version: Java 1.7.0_60-b19 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
----------------------------------------------------------------------------------------------------
Thank you for your clarification and for suggesting to watch Onramp tutorial
Best Regards,
Rik
Rik il 4 Mar 2023
Just make sure to mention it next time (you can even put it in the release field when you ask a new question).
You need to use the same path you put in the dir call. I don't know a way to parse any wildcards for the folders.
M=xlsread(fullfile('C:\...\BEMT',names(3).name));

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su File Operations in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by