* Bug #11996 fixed - Extend eye() to hypermatrix.
[scilab.git] / scilab / modules / overloading / macros / %hm_eye.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET
3 //
4 // This file must be used under the terms of the CeCILL.
5 // This source file is licensed as described in the file COPYING, which
6 // you should have received as part of this distribution.  The terms
7 // are also available at
8 // http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
9
10 function M=%hm_eye(varargin)
11     nv=size(varargin);
12     for k=1:nv
13         if (type(varargin(k)) <> 1 & type(varargin(k)) <> 8) | size(varargin(k), "*") <> 1 then
14             error(msprintf(_("%s: Wrong type for input argument #%d: An integer value expected.\n"), "eye", k))
15         end
16         dims(k)=int(varargin(k));
17     end
18
19     A=[1, dims(3:$)'];
20     M = matrix(repmat(eye(dims(1), dims(2)), A), dims);
21 endfunction