#17 it_file and load_it error in matrix form

release_3.6.x
closed
5
2012-09-15
2002-08-06
Anonymous
No

Hej!
I found strange print result from it_file class plus
load_it which I thought something was wrong in
the model. Actually, it_file+load_it changes the
dimension (looks like transposing) and
does "interleaving" when it prints a matrix.

A 4x600 matrix is changed to 600x4. The resulting
first column of length 600 is the first 150 columns
of the original matrix.

Please see below for the example.

it_file ff;
ff.open("channel_coeff.it");
Array<Mat<complex<T> > > rake_weights;
Array<Mat<int> > rake_delays;
(*_rake_design).magic(cfn,0,channel_coeff, delays,
rake_weights, rake_delays);

Vec<complex<T> > test; test=rake_weights
(0).get_row(0);
ff<<Name("rake_weights_row0") <<test;
ff<<Name("rake_weights0") <<rake_weights(0);
ff<<Name("rows_of_rake_weights")
<<rake_weights(0).rows();
ff<<Name("clos_of_rake_weights") <<rake_weights
(0).cols();
ff.close();

In MATLAB you will find that:

>> clear
>> load_it channel_coeff.it
>> whos
Name Size Bytes Class

clos_of_rake_weights 1x1 8 double
array
rake_weights0 600x4 38400 double
array (complex)
rake_weights_row0 1x600 9600
double array (complex)
rows_of_rake_weights 1x1 8 double
array

Grand total is 3002 elements using 48016 bytes

>> rows_of_rake_weights

rows_of_rake_weights =

 4

>> clos_of_rake_weights

clos_of_rake_weights =

600

rake_weights_row0 is identical with
[(rake_weights0(1:4:end,1)) (rake_weights0
(1:4:end,2)) (rake_weights0(1:4:end,3))
(rake_weights0(1:4:end,4))]

I'm not sure if we need to ask for a change of the
it_file class. Maybe the problem can be in the
MATLAB load_it function, if one wants call it a
problem.

BR, Ning

Discussion

  • Logged In: YES
    user_id=326034

    This turned out to be a case of conflicting versions of
    it_file and load_it.m. It is important to always use the
    newest load_it otherwise strange things may happen.

    /Tony