My last post was about parsing strings to math functions, like:
parsingStr2Arithmetics("2+2")
ans =
4.
But, Scilab has a native function that evaluates strings:
There are some examples using this function:
-->evstr("1")
ans =
1.
-->evstr("1+1")
ans =
2.
-->evstr("2*(1+8)/3")
ans =
6.
-->evstr("2*(1+1)")
ans =
4.
-->evstr("2*(1+1) a")
%val=[2*(1+1) a;
!--error 4
Variável indefinida: a
in execstr instruction called by :
at line 35 of function evstr called by :
evstr("2*(1+1) a")
Take a look that last example ahs failed, it happened because the argument "2*(1+1) a" does not mean a valid expression.
Thus, there is a optimized way to do this task and work with strings which mean math expressions.
Another useful use for this function is to use it for running another functions, for example:
-->evstr("exp(1)")
ans =
2.7182818
-->evstr("sin(%pi/2)")
ans =
1.
-->evstr("zeros(5, 5)")
ans =
0. 0. 0. 0. 0.
0. 0. 0. 0. 0.
0. 0. 0. 0. 0.
0. 0. 0. 0. 0.
0. 0. 0. 0. 0.
To put a string in the argument, there is needed to use an inside single quote ', like this:
-->"'"my string'""
ans =
"my string"
So, the function evstr() may evaluate strings with other strings inside, like this:
-->evstr("'"my'"+ '" string'"")
ans =
my string
-->evstr("length('"test'")")
ans =
4.
-->evstr("strsplit('"this is a string inside'", '" '")")
ans =
!this !
! !
!is !
! !
!a !
! !
!string !
! !
!inside !
Think out of the box, strings may mean math and any other functions or sentence!
parsingStr2Arithmetics("2+2")
ans =
4.
But, Scilab has a native function that evaluates strings:
evstr()
There are some examples using this function:
-->evstr("1")
ans =
1.
-->evstr("1+1")
ans =
2.
-->evstr("2*(1+8)/3")
ans =
6.
-->evstr("2*(1+1)")
ans =
4.
-->evstr("2*(1+1) a")
%val=[2*(1+1) a;
!--error 4
Variável indefinida: a
in execstr instruction called by :
at line 35 of function evstr called by :
evstr("2*(1+1) a")
Take a look that last example ahs failed, it happened because the argument "2*(1+1) a" does not mean a valid expression.
Thus, there is a optimized way to do this task and work with strings which mean math expressions.
Another useful use for this function is to use it for running another functions, for example:
-->evstr("exp(1)")
ans =
2.7182818
-->evstr("sin(%pi/2)")
ans =
1.
-->evstr("zeros(5, 5)")
ans =
0. 0. 0. 0. 0.
0. 0. 0. 0. 0.
0. 0. 0. 0. 0.
0. 0. 0. 0. 0.
0. 0. 0. 0. 0.
To put a string in the argument, there is needed to use an inside single quote ', like this:
-->"'"my string'""
ans =
"my string"
So, the function evstr() may evaluate strings with other strings inside, like this:
-->evstr("'"my'"+ '" string'"")
ans =
my string
-->evstr("length('"test'")")
ans =
4.
-->evstr("strsplit('"this is a string inside'", '" '")")
ans =
!this !
! !
!is !
! !
!a !
! !
!string !
! !
!inside !
Think out of the box, strings may mean math and any other functions or sentence!