PDL-IO-Matlab
view release on metacpan or search on metacpan
matio-1.5.0/src/mat4.c view on Meta::CPAN
class_type = MAT_C_UINT8;
break;
}
if ( matvar->rank == 2 ) {
if ( stride[0]*(edge[0]-1)+start[0]+1 > matvar->dims[0] )
err = 1;
else if ( stride[1]*(edge[1]-1)+start[1]+1 > matvar->dims[1] )
err = 1;
if ( matvar->isComplex ) {
mat_complex_split_t *cdata = data;
long nbytes = edge[0]*edge[1]*Mat_SizeOf(matvar->data_type);
ReadDataSlab2(mat,cdata->Re,class_type,matvar->data_type,
matvar->dims,start,stride,edge);
fseek(mat->fp,matvar->internal->datapos+nbytes,SEEK_SET);
ReadDataSlab2(mat,cdata->Im,class_type,
matvar->data_type,matvar->dims,start,stride,edge);
} else {
ReadDataSlab2(mat,data,class_type,matvar->data_type,
matvar->dims,start,stride,edge);
}
} else {
if ( matvar->isComplex ) {
int i;
mat_complex_split_t *cdata = data;
long nbytes = Mat_SizeOf(matvar->data_type);
for ( i = 0; i < matvar->rank; i++ )
nbytes *= edge[i];
ReadDataSlabN(mat,cdata->Re,class_type,matvar->data_type,
matvar->rank,matvar->dims,start,stride,edge);
fseek(mat->fp,matvar->internal->datapos+nbytes,SEEK_SET);
ReadDataSlab2(mat,cdata->Im,class_type,
matvar->data_type,matvar->dims,start,stride,edge);
} else {
ReadDataSlabN(mat,data,class_type,matvar->data_type,
matvar->rank,matvar->dims,start,stride,edge);
}
}
return err;
}
/** @if mat_devman
( run in 0.595 second using v1.01-cache-2.11-cpan-454fe037f31 )