1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
// Copyright (C) INRIA
//
// This file must be used under the terms of the CeCILL.
// This source file is licensed as described in the file COPYING, which
// you should have received as part of this distribution. The terms
// are also available at
// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
function %hm_p(M)
// hypermatrix display
dims=double(M("dims"))
nd=size(dims,"*")
if nd<3 then
if nd==1 then
disp(M("entries"))
else
disp(matrix(M("entries"),dims(1),dims(2)))
end
return
end
I=(1:dims(3));
for k=4:nd
I=[ones(1,dims(k)).*.I;
(1:dims(k)).*.ones(1,size(I,2))];
end
k=1;sz=dims(1)*dims(2)
for II=I
tit="(:,:,"+strcat(string(II'),",")+")"
write(%io(2),tit)
disp(matrix(M("entries")(k:k-1+sz),dims(1),dims(2)))
k=k+sz
end
endfunction
|