Maple für Professional
Maple für Akademiker
Maple für Studenten
Maple Personal Edition
Maple Player
Maple Player für iPad
MapleSim für Professional
MapleSim für Akademiker
Maple T.A. - Testen & beurteilen
Maple T.A. MAA Placement Test Suite
Möbius - Online-Courseware
Machine Design / Industrial Automation
Luft- und Raumfahrt
Fahrzeugtechnik
Robotics
Energiebranche
System Simulation and Analysis
Model development for HIL
Anlagenmodelle für den Regelungsentwurf
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematikausbildung
Technik
Allgemein- und berufsbildende Schulen
Testen und beurteilen
Studierende
Finanzmodelle
Betriebsforschung
Hochleistungsrechnen
Physik
Live-Webinare
Aufgezeichnete Webinare
Geplante Veranstaltungen
MaplePrimes
Maplesoft-Blog
Maplesoft-Mitgliedschaft
Maple Ambassador Program
MapleCloud
Technische Whitepapers
E-Mail Newsletters
Maple-Bücher
Math Matters
Anwendungs-Center
MapleSim Modell-Galerie
Anwenderberichte
Exploring Engineering Fundamentals
Lehrkonzepte mit Maple
Maplesoft Welcome-Center
Resource-Center für Lehrer
Help-Center für Studierende
Matlab[FromMatlab] - Matlab 式から Maple への変換
使い方
FromMatlab(s)
FromMatlab(s, evaluate )
FromMatlab(s, string )
FromMatlab(s, AddTranslator=false )
パラメータ
s
-
文字列
evaluate
(オプション) 真 / 偽
string
AddTranslator
説明
FromMatlab は Matlab 構文で書かれているステートメントを Maple 構文で書かれた同等のステートメントに変換します。
デフォルトでは、FromMatlab コマンドは Maple 構文への変換を表示してから変換されたコードを実行します。evaluate オプションを指定すると、最初のコード変換は表示せずに評価を実行します。
string オプションが指定されていると、与えられた Matlab 式は Maple の入力文字列に変換されます。一般的には、まず Matlab 式を文字列に変換し、変換が正しいか確認して、必要な調整を行ってから評価に移るのが無難です。
AddTranslator オプションが false (偽) に設定されている場合、トランスレータは AddTranslator 拡張機構を省略し、Matlab のファンクションコールの意味の解釈を試みずに一般的な Maple 構文への変換を行います。
FromMatlab は Matlab 言語のサブセットしか処理できません。とりわけ、構造体およびクラスはトランスレータによって処理されません。基本的な構文を除いて、FromMatlab がすべての Matlab 関数を網羅しているとは言えません。100 個以上の一般的な Matlab コマンドの変換が組み込まれていますが、変換できるものの中には、コマンドの最も一般的なケースしか網羅されていないものもあります。不足コマンドは AddTranslator を介して追加することができます。
変換された名前が AddTranslator に登録されている名前のどれとも一致しないが Maple の protected name (予約名) と完全一致する場合、その名前の先頭には m_ が付加されます。たとえば、FromMatlab("expand(x)") は Maple の expand の定義と衝突しないように m_expand(x) を生成します。保護されていない名前と完全一致した場合、m_ は付加されず、そのままの名前で生成されます。
基本的に、FromMatlab コマンドは Matlab 言語を使い慣れているユーザに Maple のプログラミングを習得してもらうための補助です。この観点から、変換されたコードでは、オプションを必要としたり 1 つまたは複数の Maple コマンドに対応するようなコードを隠匿しないようにしています。
もう一つの目的は Matlab 上での動作を Maple 上で再現するコマンドの作成です。そのため、一部のコマンドの変換はかなり冗長的になる傾向があるとともに、その場限りのプロシージャ構造なども含まれる場合があります。冗長的な変換後の Maple コードは構築の良い例とは言えません。また、Maple で一から手書きした場合とは比較できない Maple コードの構築である可能性もあります。結果として、処理に時間がかかることが考えられます。sin(x) の変換を想定します。Maple では変換時の x の値が分からないため、配列か定数かを想定する必要があります。変換では両方が考慮され、map 呼び出しが構築されます。手書きだと、その時の意図している x の値に応じて一番適切な関数が直接呼び出せます。
Matlab コードを Maple に変換したら、コードを見直し、絶対発生しないようなケースを削除すると、大抵の場合、コードはより追いかけやすく、より効率的になります。
Maple では、backslash はエスケープ文字であることにご注意ください。文字列内における \n は改行を表す 1 文字で、\\n はバックスラッシュおよび文字の n の 2 文字を表します。そのため、FromMatlab("A.\B"); の場合は \B が文字の B に解決されるため、A.B の 3 文字の数列になってしまいます。要素ごとの左除算を求めるには、FromMatlab("A.\\B"); を使用します。FromMFile を使用してコードをファイルから読み取る場合はバックスラッシュをエスケープする必要はありません。
例
Evaluating: Matrix([[1, 2], [3, 4]] );
Evaluating: ArrayTools:-ElementMultiply(A,B);
Evaluating: mysum := proc( varargin ) uses ArrayTools; local x; x := ArrayTools:-AddAlongDimension(ArrayTools:-Concatenate(2, args)); return x; end proc;
参照
Matlab[AddTranslator], Matlab[FromMFile], rtable_indexing
Download Help Document