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!