Hi,
I run into this error when the code is trying to write the output:
wr = writer(fhirf,irfsim); And fhirf is a data file created as: oirf = opath $+ "\\" $+ lmodel $+ lprior $+ dataselstr $+ subTstr $+ "ir"; create fhirf = ^oirf with IRF, 12*nirf, 8;
I guess irfsim contains complex data. Is there a way to change the type of data set from real to complex? Thank you very much!
5 Answers
0
The GAUSS function real will return only the real portion of a matrix, throwing away the complex portion. You can test to see if a matrix has a significant complex portion (i.e. much different from all zeros) with hasimag. However, you probably want to check and find out why that variable is complex. Often this happens when a negative value is passed to the natural log function (ln). This is usually a mistake.
0
Thank you for the help. I use y = hasimag(irfsim) to check and y is 1. What should I do next?
0
When I check back, I find the following lines:
nuse=5; indseq = indseq % nuse; indseq = indseq .NE 0; parasim = delif(parasim,indseq);
Could you tell me what is the meaning of them? Thanks a lot!
0
The percent symbol % is the integer modulo operator. For example:
mod = 14 % 3;
will set mod equal to 2. .NE is element-by-element 'not equal'. For example:
//Create 5x1 vector a = { 5, 1, 5, 1, 3 }; //Create 5x1 logical vector (0's and 1's) diff = a .NE 5;
will set diff equal to:
0 1 0 1 1
The delif function will delete specified rows of a matrix and assign it to the output. (NOTE: The input matrix itself will not be changed). For example:
//Create 4x2 matrix x = { 1 2, 3 4, 5 6, 7 8 }; //Create logical vector mask = { 1, 0, 0, 1 }; //Create new matrix with rows removed //based upon second input 'mask' new_x = delif(x, mask);
Will assign new_x to be equal to:
3 4 7 8
Also, if there is a GAUSS function in your code, you can click on it in the editor and click the F1 key to get help on that function.
0
Thank you very much!
Your Answer
5 Answers
The GAUSS function real will return only the real portion of a matrix, throwing away the complex portion. You can test to see if a matrix has a significant complex portion (i.e. much different from all zeros) with hasimag. However, you probably want to check and find out why that variable is complex. Often this happens when a negative value is passed to the natural log function (ln). This is usually a mistake.
Thank you for the help. I use y = hasimag(irfsim) to check and y is 1. What should I do next?
When I check back, I find the following lines:
nuse=5; indseq = indseq % nuse; indseq = indseq .NE 0; parasim = delif(parasim,indseq);
Could you tell me what is the meaning of them? Thanks a lot!
The percent symbol % is the integer modulo operator. For example:
mod = 14 % 3;
will set mod equal to 2. .NE is element-by-element 'not equal'. For example:
//Create 5x1 vector a = { 5, 1, 5, 1, 3 }; //Create 5x1 logical vector (0's and 1's) diff = a .NE 5;
will set diff equal to:
0 1 0 1 1
The delif function will delete specified rows of a matrix and assign it to the output. (NOTE: The input matrix itself will not be changed). For example:
//Create 4x2 matrix x = { 1 2, 3 4, 5 6, 7 8 }; //Create logical vector mask = { 1, 0, 0, 1 }; //Create new matrix with rows removed //based upon second input 'mask' new_x = delif(x, mask);
Will assign new_x to be equal to:
3 4 7 8
Also, if there is a GAUSS function in your code, you can click on it in the editor and click the F1 key to get help on that function.
Thank you very much!