[Fwd: How to make a read variable av lvalue?]
Muthiah Annamalai
muthuspost at gmail.com
Tue Jan 22 23:57:01 CST 2008
Svante Signell wrote:
> This was sent to the wrong list. Hoping for some answers here.
>
> -------- Forwarded Message --------
> From: Svante Signell <svante.signell at telia.com>
> To: maintainers at octave.org
> Cc: svante.signell at telia.com
> Subject: How to make a read variable av lvalue?
> Date: Wed, 23 Jan 2008 08:19:21 +0100
>
> Dear list,
>
> I have the following problem when coding in Octave/Matlab. After reading
> a string from an external file into a variable, like x=fscanf(...)
> resulting in x='string' how can I use this variable content as an
> lvalue, like x.a='something', where x is replaced by its string value,
> resulting in string.a='something' instead of x.a='something'.
>
> For functions calls eval() can be used but what about string
> substitution? BTW: We are writing som general software in Matlab/Octave
> and are planning to use eval() extensively in loops. How slow it is
> compared to fixed function calls?
>
> Thanks
>
I think using eval() is not a good idea in general, specifically if you
want to eval()
input from the user, it could dangerously compromise security.
Maybe you should rework your algorithm?
There are ways to "install-global-variables" into Octave, and use them.
You could
use a .oct file, and create the variable on the Octave symbol-table.
I suggest thinking of another way to do whatever you want to do right
now. Loops
aren't performance friendly either. Octave suggests users to vectorize
the code.
-Muthu
More information about the Help-octave
mailing list