47
$\begingroup$

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

$\endgroup$
3
  • 4
    $\begingroup$ 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? $\endgroup$
    – acl
    Commented Nov 2, 2012 at 22:23
  • $\begingroup$ @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? $\endgroup$ Commented Nov 2, 2012 at 23:29
  • $\begingroup$ 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! $\endgroup$
    – ALEXANDER
    Commented Apr 9, 2014 at 10:08

1 Answer 1

51
$\begingroup$

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"}]
$\endgroup$
0

Not the answer you're looking for? Browse other questions tagged or ask your own question.