Ok,
I got it! It is just a matter of converting array to an element

read(fid, reshape(T[1])[1] ,keyNumElem[1])...

Now it works but I have a follow on question.

What are the overheads in doing this conversion. I am reading a 2Terabyte 
data file....and want to make it really efficient by defining all 
parameters in read() without dynamic 
conversions if possible!

Or is there a way to replace the column of strings with Types? When I try 
to do that I get an error about convert i.e. cannot convert string to 
DataType...

Thanks




On Sunday, November 29, 2015 at 10:24:46 PM UTC-5, Rajn wrote:
>
> Hi,
> I am trying to read a binary file by doing the following:
>
> read(fid, DataType[i], Numelements[i]).
>
> I would like to extract DataType from a user input which is read from a 
> column (whose header is 'type') of DataTable which is a string array.
> For example 
> DataTable[1,:type] = "uint8"
> DataTable[2,:type] = "sint16"
> ..etc
> I would like to convert this "uint8" to UInt8 in that same column but I 
> could not figure how and so I generated a new cell array' T' of that size.
> And then with an if statement I occupy the new variable with DataType. 
> Ugh!!
>
> An example for an arbitrary kth row of the DataTable column...
>
> i.e., if DataTable[k,:type] == "int16"
>         T[k]=Type[Int16];
>       end
>
> when I actually run it I get the following error...
>
> julia> T[1]
> 1-element Array{DataType,1}:
> Int16
>
> julia>read(fid, T[1] ,keyNumElem[1])
>
> ERROR: MethodError: `read` has no method matching read(::IOStream, 
> ::Array{Type{T},1}, ::Int32)
> Closest candidates are:
>   read{T}(::IO, ::Type{T}, ::Int32, ::Int32...)
>   read{T}(::IO, ::Type{T}, ::Integer, ::Integer...)
>   read{T<:Base.AbstractPipe}(::T<:Base.AbstractPipe, ::Any...)
>   ...
>
>
> I understand the problem but do not know how to convert a string to 
> ..."what?" I mean what is the 'type' of the 2nd parameter in read 
> -'Type{T}'? Is it a string?
> Or maybe I am correct and I have to convert Array to an element? How do I 
> do that?
> Very confused!!
> Thanks
>
>

Reply via email to