How can I make "eval" work with an if condition?

I have a text file containing initialization data for my simulations and there I have an if condition like this:
if (Data.m > 10 & Data.m < 100)
Data.limits = 2;
else
Data.limits = 1.0;
end
The data of the text file is saved in "temp" and when I execute "eval(temp)" it gives me the error as below.
"Dot indexing is not supported for variables of this type."
There are multiple variables in the text file like "User.a, User.b" or "Force.a. Force.b" and it works fine. Adding an "if condition" in the text file like above throws this error.

4 Comments

Why are you using eval() for this instead of run() ?
Hi Walter,
I am working on an already existing code and it has this eval function despite all the known issues of eval. I am just updating the code using these if conditions to update some parameter values.
No worries, I got it fixed now and it seems to work fine with eval. My initializations were messing up earlier.
Thanks anyway.
@Michael Doroginizky, any particular reason why you are suggesting to use eval() when there are better alternatively available (specially the approach given by @Steven Lord in the link you have posted) ?

Sign in to comment.

Answers (0)

Categories

Tags

Asked:

on 6 Sep 2019

Commented:

on 26 Sep 2023

Community Treasure Hunt

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

Start Hunting!