47

Is it possible to export the output expressions from Mathematica computations (e.g., equations) in valid MATLAB syntax?

rm -rf
  • 88,781
  • 21
  • 293
  • 472
Seyhmus Güngören
  • 2,465
  • 1
  • 18
  • 19
  • 4
    Which equations? Can you be more specific on what precisely it is you want to do? one equation? a list of them? Cut and paste? Programmatically export? – acl Nov 02 '12 at 22:23
  • @acl just an equation with Log s exponentials error functions. For example f[x_]=Log[...]+err[..]*Exp[..]. Something that sort. I know there is a command // InputForm but the output has for example $E$ which MATLAB will not understand. I only want to copy paste the equation to MATLAB. Still unclear? – Seyhmus Güngören Nov 02 '12 at 23:29
  • This is not exactly an answer, but do to the large chat under previous answer I would like to point out that ToMatlab, provides the page where you can find the package, however many struggles with not being able to download it. I had the same problem until I pressed down alt key and pressed the link at the bottom of the page. Might save a bit of time! – ALEXANDER Apr 09 '14 at 10:08

1 Answers1

51

There is the ToMatlab package that will convert Mathematica expressions to MATLAB equivalents. For example:

<<ToMatlab`
Expand[(x + Log@y)^5] // ToMatlab
(* x.^5+5.*x.^4.*log(y)+10.*x.^3.*log(y).^2+10.*x.^2.*log(y).^3+5.* ...
        x.*log(y).^4+log(y).^5; *)

It even conveniently breaks it using ... and can also convert matrices:

RandomInteger[5, {5, 5}] // ToMatlab
(* [5,0,5,3,4;
    5,5,3,0,2;
    1,4,4,4,4;
    0,3,2,5,5;
    4,5,5,1,1]; *)

However, it won't convert general definitions or things that don't make sense in MATLAB, such as patterns.

To install the package, extract the ToMatlab.m file to

FileNameJoin[{$UserBaseDirectory, "Applications"}]
Szabolcs
  • 234,956
  • 30
  • 623
  • 1,263
rm -rf
  • 88,781
  • 21
  • 293
  • 472