Reading data files within a subfolder of the search path?

3 views (last 30 days)
I would like to be able to have all my functions in the ML searchpath, but have all of my data in subfolders. Then I would enter that subfolder name into the function I am calling and it would be able to use the functions within the primary folder, but take data from the subfolders. Is there any way to accomplish this? Or do I just need to have all functions and data to be analyzed in the primary search path?

Answers (2)

Adam
Adam on 22 Mar 2016
There is no requirement for data to be on the Matlab path. How you access the data is up to you, but if it is not on the Matlab path you have to give a full path name when accessing it.
This path name can be constructed from components depending on what knowledge you have at the point you need to construct it though.
e.g.
doc mfilename
can be used if you want to create a path relative to the currently executing m-file.
  4 Comments
Tom Ruopp
Tom Ruopp on 22 Mar 2016
Thanks Stephen! That's what I was looking for.
Appreciate everyone else's help as well!
Image Analyst
Image Analyst on 22 Mar 2016
You'll still need to use genpath() (like I showed you in my Answer) to get the list of subfolders like you said you want. You can use dir() and then search for "." but that is far less convenient. But I don't think you want to be hard coding in all the subfolders.

Sign in to comment.


Image Analyst
Image Analyst on 22 Mar 2016
You can use genpath() to generate all subfolders of C:/MATLABLocomotionPD/datafilefolder in a cell array:
caPathList = genpath('C:/MATLABLocomotionPD/datafilefolder');
From there you can use dir() and fullfile() to specify the complete path of any file in any of those folders. See attached m-file for a demo.

Categories

Find more on Search Path in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!