/*
* ReadData_demo.sli
*
* This file is part of NEST.
*
* Copyright (C) 2004 The NEST Initiative
*
* NEST is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* NEST is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with NEST. If not, see <http://www.gnu.org/licenses/>.
*
*/
% This program demonstrates reading a weight matrix into SLI
%
% Requires: ReadData_demo.dat
%
% Hans Ekkehard Plesser, 2004-09-02
/*
Expected file format: N^2 doubles or integers
*/
% file name for input data
/dataname (SLIHOME) getenv ; (/examples/ReadData_demo.dat) join def
% open file for reading
/datastream dataname ifstream
not {
(Could not open data file: ) dataname join M_ERROR message
} if
def
% read data as one vector
datastream [/Double] ReadList /Wmat Set
datastream close
% find length, root
/L Wmat length def % elements in vector
/N L sqrt cvi def % elements per row
N N mul L neq {
(Data cannot be converted to square matrix) M_ERROR message
} if
% reshape data, store as Wmat again
Wmat N Partition /Wmat Set
/* show row-wise: should be (as doubles)
11 12 13
21 22 23
31 32 33
*/
Wmat { == } forall