OK,<br><br>The whole expression has to be evaluated rather just the right part (ie the function call).<br><br>Thanks a lot<br><br><br><div class="gmail_quote">On Thu, Nov 12, 2009 at 2:59 AM, Collette yann <span dir="ltr"><<a href="mailto:yann.collette@scilab.org">yann.collette@scilab.org</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Sébastien Bihorel a écrit :<div><div></div><div class="h5"><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi,<br>
<br>
While translating some Matlab to Scilab, I stumbled upon some issues with problems with the eval function. I don't quite get why the 'eval 6' statement of the following code returns an error (and not the 'eval 3' statement), and would appreciate any explanation.<br>


<br>
Thank you<br>
<br>
Sebastien<br>
<br>
<br>
function [b]=test(z)<br>
  b = 1;  endfunction<br>
<br>
function [x,y]=test2(z)<br>
  x = 1;<br>
  y = 2;             endfunction<br>
<br>
b=test(2)                // eval 1<br>
b=evstr('test(2)')       // eval 2<br>
b=eval('test(2)')        // eval 3<br>
<br>
[x,y]=test2(2)           // eval 4<br>
[x,y]=evstr('test2(2)')  // eval 5<br>
[x,y]=eval('test2(2)')   // eval 6<br>
<br>
<br>
</blockquote></div></div>
eval returns the value of the evaluation of a matrix of strings.<br>
If there is one string, eval returns 1 value, if there is 2 strings, eval returns 2 values.<br>
If you want to get several parameters of a function, use execstr:<br>
<br>
execstr('[x,y] = test2(2)');<br>
<br>
YC<br>
</blockquote></div><br>