* Bug #8431: eval3d() set obsolete
[scilab.git] / scilab / modules / graphics / macros / eval3d.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) INRIA
3 // Copyright (C) 2012 - 2016 - Scilab Enterprises
4 //
5 // This file is hereby licensed under the terms of the GNU GPL v2.0,
6 // pursuant to article 5.3.4 of the CeCILL v.2.1.
7 // This file was originally licensed under the terms of the CeCILL v2.1,
8 // and continues to be available under such terms.
9 // For more information, see the COPYING file which you should have received
10 // along with this program.
11
12 function [z]=eval3d(fun,x,y)
13     //Etant donnee une discretisation des abscisses (x) et des ordonnees (y)
14     //  eval3d(fun,x [,y]) retourne la matrice [fun(x(i),y(j))] des valeurs de la
15     //  fonction decrite par la macro fun aux points (x(i),y(j)).
16     //Attention fun doit savoir gerer des arguments x et y vectoriels.
17     //  Si fun ne sait pas gerer des arguments vectoriels, utiliser
18     //  feval(x,y,fun)
19     //Si y n'est pas fourni il est suppose identique a x
20     //!
21     warnobsolete("ndgrid", "6.1")
22     [lhs,rhs]=argn(0)
23     if rhs==3 then
24         nx=prod(size(x));ny=prod(size(y))
25         z=matrix(fun(ones(1,ny).*.matrix(x,1,nx),matrix(y,1,ny).*.ones(1,nx)),nx,ny)
26     elseif rhs==2 then
27         nx=prod(size(x))
28         z=matrix(fun(ones(1,nx).*.matrix(x,1,nx),matrix(x,1,nx).*.ones(1,nx)),nx,nx)
29     else
30         error(msprintf(gettext("%s: Wrong number of input arguments: %d or %d expected.\n"), "eval3d", 2, 3));
31     end
32 endfunction