The following is a list of functions supported under MatrixOP: Numbers and ArithmeticĪcos, asin, atan, atan2, cos, hypot, phase, sin, sqrt, tan.Īcosh, asinh, atanh, cosh, exp, ln, log, powC, powR, sinh, tanh.Ĭmplx, conj, imag, magSqr, p2Rect, phase, powC, r2Polar, real.Ĭmplx, fp32, fp64, int8, int16, int32, uint8, uint16, uint32. MatrixOP/O acausalConvolution2=Convolve(fx,rect,4) MatrixOP/O circConvolution2=Convolve(fx,rect,0) Obviously you can get the same results using the more compact syntax: MatrixOP/O acausalConvolution=IFFT(FFT(fx,0)*FFT(rect,0),4) MatrixOP/O circConvolution=IFFT(FFT(fx,0)*FFT(rect,0),0) For example, you can compute circular or acausal convolutions using cascaded transforms and array multiplications as in the following lines: MatrixOP supports array based operations such as Fourier Transforms, Chirp-Z transforms, convolutions and correlations. The following example computes element by element multiplication of matrix A with matrix B from which we subtract the inverse of matrix C times the diagonal matrix created from the array D: MatrixOp Mat1= Mat2 x Mat3 // matrix multiply You can perform matrix multiplication and matrix dot product with a natural syntax using MatrixOP. Mat1= Mat2*Mat3 // element by element multiplication Matrices are two dimensional named data objects (Igor supports up to four dimensions.) You can perform basic arithmetic operations on matrices using standard data assignment statements. Wide-Angle Neutron Spin Echo Spectroscopy.