Rewrite DataExtraction
This commit is contained in:
parent
b842bc7be1
commit
1b465c2857
@ -33,8 +33,8 @@ namespace MatFileHandler
|
|||||||
DataElement data,
|
DataElement data,
|
||||||
DataElement imaginaryData)
|
DataElement imaginaryData)
|
||||||
{
|
{
|
||||||
var realParts = DataExtraction.GetDataAsDouble(data).ToArrayLazily();
|
var realParts = DataExtraction.GetDataAsDouble(data);
|
||||||
var imaginaryParts = DataExtraction.GetDataAsDouble(imaginaryData).ToArrayLazily();
|
var imaginaryParts = DataExtraction.GetDataAsDouble(imaginaryData);
|
||||||
if (realParts == null)
|
if (realParts == null)
|
||||||
{
|
{
|
||||||
throw new HandlerException("Couldn't read sparse array.");
|
throw new HandlerException("Couldn't read sparse array.");
|
||||||
@ -111,7 +111,7 @@ namespace MatFileHandler
|
|||||||
{
|
{
|
||||||
if (flags.Variable.HasFlag(Variable.IsLogical))
|
if (flags.Variable.HasFlag(Variable.IsLogical))
|
||||||
{
|
{
|
||||||
var data = DataExtraction.GetDataAsUInt8(realData).ToArrayLazily().Select(x => x != 0).ToArray();
|
var data = DataExtraction.GetDataAsUInt8(realData).Select(x => x != 0).ToArray();
|
||||||
return new MatNumericalArrayOf<bool>(flags, dimensions, name, data);
|
return new MatNumericalArrayOf<bool>(flags, dimensions, name, data);
|
||||||
}
|
}
|
||||||
switch (flags.Class)
|
switch (flags.Class)
|
||||||
@ -163,7 +163,7 @@ namespace MatFileHandler
|
|||||||
string name,
|
string name,
|
||||||
MiNum<byte> dataElement)
|
MiNum<byte> dataElement)
|
||||||
{
|
{
|
||||||
var data = dataElement?.Data;
|
var data = dataElement.Data;
|
||||||
return new MatCharArrayOf<byte>(flags, dimensions, name, data, Encoding.UTF8.GetString(data));
|
return new MatCharArrayOf<byte>(flags, dimensions, name, data, Encoding.UTF8.GetString(data));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -172,25 +172,25 @@ namespace MatFileHandler
|
|||||||
switch (arrayType)
|
switch (arrayType)
|
||||||
{
|
{
|
||||||
case ArrayType.MxDouble:
|
case ArrayType.MxDouble:
|
||||||
return DataExtraction.GetDataAsDouble(data).ToArrayLazily() as T[];
|
return DataExtraction.GetDataAsDouble(data) as T[];
|
||||||
case ArrayType.MxSingle:
|
case ArrayType.MxSingle:
|
||||||
return DataExtraction.GetDataAsSingle(data).ToArrayLazily() as T[];
|
return DataExtraction.GetDataAsSingle(data) as T[];
|
||||||
case ArrayType.MxInt8:
|
case ArrayType.MxInt8:
|
||||||
return DataExtraction.GetDataAsInt8(data).ToArrayLazily() as T[];
|
return DataExtraction.GetDataAsInt8(data) as T[];
|
||||||
case ArrayType.MxUInt8:
|
case ArrayType.MxUInt8:
|
||||||
return DataExtraction.GetDataAsUInt8(data).ToArrayLazily() as T[];
|
return DataExtraction.GetDataAsUInt8(data) as T[];
|
||||||
case ArrayType.MxInt16:
|
case ArrayType.MxInt16:
|
||||||
return DataExtraction.GetDataAsInt16(data).ToArrayLazily() as T[];
|
return DataExtraction.GetDataAsInt16(data) as T[];
|
||||||
case ArrayType.MxUInt16:
|
case ArrayType.MxUInt16:
|
||||||
return DataExtraction.GetDataAsUInt16(data).ToArrayLazily() as T[];
|
return DataExtraction.GetDataAsUInt16(data) as T[];
|
||||||
case ArrayType.MxInt32:
|
case ArrayType.MxInt32:
|
||||||
return DataExtraction.GetDataAsInt32(data).ToArrayLazily() as T[];
|
return DataExtraction.GetDataAsInt32(data) as T[];
|
||||||
case ArrayType.MxUInt32:
|
case ArrayType.MxUInt32:
|
||||||
return DataExtraction.GetDataAsUInt32(data).ToArrayLazily() as T[];
|
return DataExtraction.GetDataAsUInt32(data) as T[];
|
||||||
case ArrayType.MxInt64:
|
case ArrayType.MxInt64:
|
||||||
return DataExtraction.GetDataAsInt64(data).ToArrayLazily() as T[];
|
return DataExtraction.GetDataAsInt64(data) as T[];
|
||||||
case ArrayType.MxUInt64:
|
case ArrayType.MxUInt64:
|
||||||
return DataExtraction.GetDataAsUInt64(data).ToArrayLazily() as T[];
|
return DataExtraction.GetDataAsUInt64(data) as T[];
|
||||||
default:
|
default:
|
||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
}
|
}
|
||||||
@ -200,12 +200,12 @@ namespace MatFileHandler
|
|||||||
{
|
{
|
||||||
if (isLogical)
|
if (isLogical)
|
||||||
{
|
{
|
||||||
return DataExtraction.GetDataAsUInt8(data).ToArrayLazily().Select(x => x != 0).ToArray() as T[];
|
return DataExtraction.GetDataAsUInt8(data).Select(x => x != 0).ToArray() as T[];
|
||||||
}
|
}
|
||||||
switch (data)
|
switch (data)
|
||||||
{
|
{
|
||||||
case MiNum<double> _:
|
case MiNum<double> _:
|
||||||
return DataExtraction.GetDataAsDouble(data).ToArrayLazily() as T[];
|
return DataExtraction.GetDataAsDouble(data) as T[];
|
||||||
default:
|
default:
|
||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user