On Thu, 2016-04-07 at 21:27, Lucas de Almeida Carotta <[email protected]>
wrote:
> How I make this code works?
>
> function read_matrix( data::DataType=Any, spacing=" " )
> local line::Vector{ data } = Array( data, 1 )
> local matrix::Matix{ data } = Array( Array{ data, 1 }, 1 )
>
> while !eof( STDIN )
> line = [ parse( data, i ) for i in split( chomp( readline( STDIN )
> ), spacing ) ]
> push!( matrix, line )
> end
>
> return matrix
> end
Note that the `local` is not necessary (it does nothing) as assignment
creates a local variable. Also, the type-declaration is unnecessary.
Assuming it is a matrix, i.e. all lines are the same length. Untested
code:
function read_matrix( T::DataType=Any, spacing=" " )
out = T[] # equivalent to Array(T,1)
nlines = 0
while !eof( STDIN )
# note you can only push to 1-D arrays
push!(out, [ parse( data, i ) for i in split( chomp( readline( STDIN )
), spacing ) ] )
nlines += 1
end
return reshape(out, nlines, div(length(out),nlines)) # maybe needs a
transpose
end