Matlab to Gauss Translator

Embed Size (px)

Citation preview

  • 8/9/2019 Matlab to Gauss Translator

    1/2

    MATLAB®

     to GAUSS®

     Translator

    Written by Hang Qian

    Iowa State University

    Introduction

    Welcome to the MATLAB 

    to GAUSS 

    Translator, a program that help you convert your MATLAB codes into

    GAUSS codes. MATLAB and GAUSS have many similarities in grammar, which permit a literal translation

    from one to the other. Analogous to translation between two human languages, the program cannot

    generate perfect GAUSS codes. A natural question is: what is the accuracy rate? Surprisingly, conditional on

    correct original MATLAB codes, the quality of translation is negatively correlated with the quality of your

    MATLAB codes. Imagine the complexity of translating a famous English poem into Spanish, we will recognize

    the challenge of translating beautiful Matlab codes with clever matrix manipulation into GAUSS language. A

    wild guess of the conversion accuracy for most MATLAB codes is about 80%. It inevitably leaves some errors

    and omissions for the user.

    Usage

    First, make sure your MATLAB file is free of grammatical error. At least all brackets are balanced.

    Next, copy and paste your MATLAB file into the current folder.

    Then there are a number of ways to proceed.

    1) Type setup in the MATLAB command window, and enter your file name in the graphic interface.

    2) Double click setup.m and press F5, and enter your file name in the graphic interface.

    3) Call MAT2GAS() function with your file name as the input argument.

    Then the MATLAB to GAUSS Translator will translate the codes and generate a new file with the same name

    except for the extension “.gas” 

    Limitations

    It is just a derivative of my MATLAB 

    to R translator and the capability of GAUSS translation is weak. In the

    future, the program can be improved when the author has more spare time and resources.

    Extension

    You can enhance the power of the MATLAB to GAUSS Translator by adding new rules. New rules can be

    mostly easily added in EXTENSION0.m, EXTENSION1.m and EXTENSION2.m.EXTENSION0.m allows you to translate a MATLAB expression into GAUSS expression. Essentially, it is just a

  • 8/9/2019 Matlab to Gauss Translator

    2/2

    find and replace. For example you can replace eps in MATLAB with .Machine$double.eps in R.

    whole word find and replace.

    EXTENSION1.m  allows you to translate a single-output MATLAB function into GAUSS expressions (not

    necessarily functions). First, you provide a MATLAB function name, and be sure to add a left bracket, say

    reshape(. Since the order of input arguments of reshape is well-defined in MATLAB, you do not need to

    provide more information. Second, you write the translated GAUSS codes. For example, the counterpart of

    length(A) in GAUSS is rows(A) or cols(A). So you vectorize it and write cols(vec(arg{1})), where arg{1}, arg{2},

    arg{3} stands for ordered arguments in the MATLAB function. Note that the translated GAUSS codes are not

    necessarily an GAUSS function. It can be some GAUSS scripts, but arg{1}, arg{2}, arg{3} should appear in it.

    Essentially, what the program does is to replace arg{1}, arg{2}, arg{3}  with the arguments appears in

    user-supplied MATLAB codes.

    EXTENSION2.m  allows you to translate a double-output MATLAB function into GAUSS expressions. For

    example, [V,D] = sort(A) can be translated as V=sort(A); D=sortindc(A). So you provide the MATLAB function

    name sort(, and the translated codes sort(arg{1}) and sortindc(arg{1}).

    You can test the effects of your list by directly calling EXTENSION0.m, EXTENSION1 or EXTENSION2 without

    invoking the MATLAB 

    to GAUSS Translator main program.

    Conclusion

    Machine translation between MATLAB and GAUSS is similar to the translation of language between two

    counties. Literal translation may yield unexpected results. This reminds me of a story. When I studied

    English in the middle school, I was taught how to translate the word lettuce to my mother tone. I thought it

    is a vegetable similar to gait broccoli stalks/stems without crowns. I felt puzzled how it could be an

    ingredient of salads. Not until I came here and shopped a grocery store did I realize the meaning of lettuce  – 

    completely different from my previous belief. In the same vein, do not blindly trust the GAUSS codes

    generated by the MATLAB to GAUSS Translator.

    Contact information

    Written by Hang Qian, Iowa State University

    Contact me: [email protected] econometrics routines and pedagogical economics software are available at

    http://www.public.iastate.edu/~hqi/ 

    http://www.public.iastate.edu/~hqi/http://www.public.iastate.edu/~hqi/http://www.public.iastate.edu/~hqi/