Can MATLAB read a file inside a file?

2 ビュー (過去 30 日間)
Akana Juliet
Akana Juliet 2021 年 8 月 13 日
コメント済み: Cris LaPierre 2021 年 8 月 13 日
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.
*Edit*
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!

採用された回答

Cris LaPierre
Cris LaPierre 2021 年 8 月 13 日
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.
  6 件のコメント
Akana Juliet
Akana Juliet 2021 年 8 月 13 日
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 2021 年 8 月 13 日
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'

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeString Parsing についてさらに検索

製品


リリース

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by