필터 지우기
필터 지우기

how to load files which are listed in a cell array

조회 수: 12 (최근 30일)
nado
nado 2023년 3월 3일
댓글: Rik 2023년 3월 4일
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

채택된 답변

Rik
Rik 2023년 3월 3일
편집: Rik 2023년 3월 3일
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
nado
nado 2023년 3월 4일
편집: nado 2023년 3월 4일
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 2023년 3월 4일
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));

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 File Operations에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by