mma 表达式转matlab

randolf2022年6月6日
大约 1 分钟

mma 表达式转matlab

Mathematica 表达式转 Matlab

定义

有时候我们希望将 mma 的表达式转换到 matlab 中编写数值程序,这时需要将预先计算的符号解转换到 matlab 中。

实现

结合写好的 mma 函数,实现方便的转换。

函数代码

ToMatlab

使用方式

  1. 将该文件放置到 mma 的 $Path 中,比如: F:\Software\Work\Mathematica\AddOns\ExtraPackages

  2. 直接调用函数

Import["ToMatlab.m", "Package"]
rotMat = EulerMatrix[{\[Alpha], \[Beta], \[Gamma]}, {3, 2, 
    3}];(*ZYZ Form*)
ToMatlab[rotMat /. {\[Alpha] -> a, \[Beta] -> b, \[Gamma] -> c}]

结果:

[cos(a) .* cos(b) .* cos(c) + (-1) .* sin(a) .* sin(c),(-1) .*  ...
  cos(c) .* sin(a) + (-1) .* cos(a) .* cos(b) .* sin(c),cos(a) .*  ...
\

  sin(b);cos(b) .* cos(c) .* sin(a) + cos(a) .* sin(c),cos(a) .*  ...
\

  cos(c) + (-1) .* cos(b) .* sin(a) .* sin(c),sin(a) .* sin(b);(-1)  ...
\

  .* cos(c) .* sin(b),sin(b) .* sin(c),cos(b)];

因此注意将换行的 \ 去掉, 剩余部分可以直接调用。

note

注意,对于表达式长的,可以直接 Export[path, expr]为文件,然后使用Vscode的正则表达式替换完成

使用这样的表达式:

(\.\.\.\\n)(.+)\\$\n

替换为:

...\n$2

参考

Loading...