<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Hi Samuel,<br>
<br>
Thanks for your fast and pertinent answer.<br>
However, it does not work really well for what I try to do.<br>
Indeed, I would like to use<br>
<br>
f=[c,s]<br>
<br>
as a normal function that is being able to call something like
f(x)=[c(x),s(x)];<br>
I assume that all the functions f,c and s share the same input
arguments.<br>
With your solution, it could work if I could call "L(:)(x)":<br>
<br>
L=[cos sin];<br>
L(1)(%pi)<br>
ans =<br>
<br>
- 1. <br>
<br>
L(2)(%pi)<br>
ans =<br>
<br>
1.225D-16 <br>
<br>
//What I would like:<br>
<br>
L(:)(%pi) //not implemented in scilab<br>
ans_I_am_dreaming_about =<br>
- 1. 1.225D-16 <br>
<br>
The ultimate goal here is to build something that I could
manipulate like a matrix with a "*" operator that mimic what
happens with a normal matrix:<br>
<br>
L=[a b ; c d];<br>
M=[e f; g h];<br>
N=L*M==[a*e+b*g, a*f+b*h ; c*e+d*g, c*f+d*h];<br>
and<br>
N(x)==[a(x)*e(x)+b(x)*g(x), a(x)*f(x)+b(x)*h(x) ;
c(x)*e(x)+d(x)*g(x), c(x)*f(x)+d(x)*h(x)];<br>
<br>
I am not sure this can be done in scilab...<br>
<br>
Cheers,<br>
<br>
Antoine<br>
<br>
<br>
On 28/11/2012 22:54, Samuel Gougeon wrote:<br>
</div>
<blockquote cite="mid:50B68812.9030304@free.fr" type="cite">
<meta http-equiv="Context-Type" content="text/html;
charset=ISO-8859-1">
<div class="moz-cite-prefix">Hello Antoine,<br>
Le 28/11/2012 21:44, Antoine Monmayrant a écrit :<br>
</div>
<blockquote cite="mid:2d3b-50b67780-31-41190480@130597042"
type="cite">
<pre wrap="">.../...
I tried to play with %fptr_c_fptr but without success.</pre>
</blockquote>
It could depend on the container you choose. The following works
well:<br>
<pre><big><span>function</span> <span>r </span><span>= </span><span>%fptr_c_fptr</span><span>(</span><span>f</span><span>, </span><span>g</span><span>)</span>
<span>r</span> <span>=</span> <span>tlist</span><span>(</span><span>[</span><span>"</span><span>fptrL</span><span>"</span><span>]</span><span>,</span> <span>f</span><span>,</span> <span>g</span><span>)</span>
<span>endfunction</span>
<span>// ----------------------------------</span>
<span>function</span> <span>r</span><span> = </span><span>%fptrL_c_fptr</span><span>(</span><span>L</span><span>, </span><span>f</span><span>)</span>
<span>r</span> <span>=</span> <span>tlist</span><span>(</span><span>[</span><span>"</span><span>fptrL</span><span>"</span><span>]</span><span>,</span> <span>L</span><span>(</span><span>2</span><span>:</span><span>$</span><span>)</span><span>,</span> <span>f</span><span>)</span>
</big><span><big>endfunction
-->L = [ disp disp disp]
L =
L(1)
fptrL
L(2)
L(3)
L(4)
</big>
</span></pre>
or<br>
<pre><big><span>function</span> <span>r</span><span>=</span><span>%fptr_c_fptr</span><span>(</span><span>f</span><span>, </span><span>g</span><span>)</span>
<span>r</span> <span>=</span> <span>list</span><span>(</span><span>f</span><span>,</span> <span>g</span><span>)</span>
<span>endfunction</span>
<span>// ----------------------------------</span>
<span>function</span> <span>r</span><span>=</span><span>%l_c_fptr</span><span>(</span><span>L</span><span>, </span><span>f</span><span>)</span>
<span>r</span> <span>=</span> <span>list</span><span>(</span><span>L</span><span>(</span><span>:</span><span>)</span><span>,</span> <span>f</span><span>)</span>
<span>endfunction
-->L = [ disp disp disp]
L =
L(1)
L(2)
L(3)
</span></big><big>
or</big>
<span></span><big><span>function</span> <span>r</span><span>=</span><span>%fptr_c_fptr</span><span>(</span><span>f</span><span>, </span><span>g</span><span>)</span>
<span>c</span> <span>=</span> <span>cell</span><span>(</span><span>1</span><span>,</span><span>2</span><span>)</span>
<span>c</span><span>(</span><span>1</span><span>)</span><span>.</span><span>entries</span> <span>=</span> <span>f</span>
<span>c</span><span>(</span><span>2</span><span>)</span><span>.</span><span>entries</span> <span>=</span> <span>g</span>
<span>r</span> <span>=</span> <span>tlist</span><span>(</span><span>"</span><span>fptrL</span><span>"</span><span>,</span><span>c</span><span>)</span>
<span>endfunction</span>
<span>// ----------------------------------</span>
<span>function</span> <span>r</span><span>=</span><span>%fptrL_c_fptr</span><span>(</span><span>L</span><span>, </span><span>f</span><span>)</span>
<span>c</span> <span>=</span> <span>L</span><span>(</span><span>2</span><span>)</span>
<span>d</span> <span>=</span> <span>c</span><span>.</span><span>dims</span>
<span>d</span><span>(</span><span>2</span><span>)</span> <span>=</span> <span>int32</span><span>(</span><span>d</span><span>(</span><span>2</span><span>)</span><span>*</span><span>1.</span> <span>+</span><span>1</span><span>)</span>
<span>setfield</span><span>(</span><span>2</span><span>,</span> <span>d</span><span>,</span> <span>c</span><span>)</span>
<span>L2</span> <span>=</span> <span>getfield</span><span>(</span><span>3</span><span>,</span><span>c</span><span>)</span> <span>// entries</span>
<span>L2</span><span>(</span><span>$</span><span>+</span><span>1</span><span>)</span> <span>=</span> <span>f</span>
<span>setfield</span><span>(</span><span>3</span><span>,</span><span>L2</span><span>,</span><span>c</span><span>)</span>
<span>r</span> <span>=</span> <span>tlist</span><span>(</span><span>"</span><span>fptrL</span><span>"</span><span>,</span> <span>L2</span><span>)</span>
<span>endfunction</span></big>
</pre>
-->L = [ disp rand diag ];<br>
<br>
-->L(2)(1)("Hello boy")<br>
Hello boy <br>
<br>
-->L(2)(2)(list(2,3))<br>
ans =<br>
0.8497452 0.8782165 0.5608486 <br>
0.6857310 0.0683740 0.6623569 <br>
<br>
-->L(2)(3)(1:4)<br>
ans =<br>
1. 0. 0. 0. <br>
0. 2. 0. 0. <br>
0. 0. 3. 0. <br>
0. 0. 0. 4. <br>
<br>
<br>
you may also prefer using a structure array instead of a cell<br>
as container. It should also work.<br>
<br>
Regards<br>
Samuel<br>
<br>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:users@lists.scilab.org">users@lists.scilab.org</a>
<a class="moz-txt-link-freetext" href="http://lists.scilab.org/mailman/listinfo/users">http://lists.scilab.org/mailman/listinfo/users</a>
</pre>
</blockquote>
</body>
</html>