Can MATLAB read a file inside a file?

2 views (last 30 days)
Hi all. I have MATLAB reading in a text file successfully into a structure. But I would like for my text file to point to csv file to read in.
So I read in the text file data and it is a list of parameters. but one of the parameters listed is another read-in file.
I am using a file that reads in and parses the data based on type. This is what it looks like:
function result = load_data( r )
%LOAD_DATA recursively convert java objects
if isa(r, 'char')
result = char(r);
elseif isa(r, 'double')
result = double(r);
elseif isa(r, 'logical')
result = logical(r);
Is there a way I can say something like "elseif isa(r, 'csv, text, or yaml file, etc') ?
Thanks in advance!

Accepted Answer

Cris LaPierre
Cris LaPierre on 13 Aug 2021
Yes, it is possible, but there is no function that will do this on its own. You will need to write your own code to parse the first file and then perform the desired operations with the data it has loaded. This could be a second read file operation using a file name obtained from the first file.
Akana Juliet
Akana Juliet on 13 Aug 2021
Sorry, you asked how the data was stored in my first file. When I said I am generalizing, I meant that I was changing the word usage but this is the exact format I'm given. The function I am using knows to just take what is to the right and read it in as such. So Name will be 'char' and size will be 'double'. Right now when I try to run it like this (below), it reads in 'file.csv' as a string.
I was thinking about trying an elseif statement to recognize when the str includes .csv in the string, and then read in that string as a file. I don't know how to go about that but I am trying
Name: name
Type: type
Size: 10
Table: 'file.csv'
Cris LaPierre
Cris LaPierre on 13 Aug 2021
You doen't read that string in as a file. You read it in as a string. Then you have some follow up code that then reads in the csv file using that name captured in the string.
Consider using fileparts.
[~,f,x] = fileparts('file.csv')
f = 'file'
x = '.csv'

Sign in to comment.

More Answers (0)




Community Treasure Hunt

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

Start Hunting!