Maple Professionel
Maple Académique
Maple Edition Étudiant
Maple Personal Edition
Maple Player
Maple Player for iPad
MapleSim Professionel
MapleSim Académique
Maple T.A. - Suite d'examens de classement
Maple T.A. MAA Placement Test Suite
Möbius - Didacticiels de mathématiques en ligne
Machine Design / Industrial Automation
Aéronautique
Ingénierie des véhicules
Robotics
Energie
System Simulation and Analysis
Model development for HIL
Modélisation du procédé pour la conception de systèmes de contrôle
Robotics/Motion Control/Mechatronics
Other Application Areas
Enseignement des mathématiques
Enseignement de l’ingénierie
Enseignement secondaire et supérieur (CPGE, BTS)
Tests et évaluations
Etudiants
Modélisation financière
Recherche opérationnelle
Calcul haute performance
Physique
Webinaires en direct
Webinaires enregistrés
Agenda des évènements
Forum MaplePrimes
Blog Maplesoft
Membres Maplesoft
Maple Ambassador Program
MapleCloud
Livres blancs techniques
Bulletin électronique
Livres Maple
Math Matters
Portail des applications
Galerie de modèles MapleSim
Cas d'Etudes Utilisateur
Exploring Engineering Fundamentals
Concepts d’enseignement avec Maple
Centre d’accueil utilisateur Maplesoft
Centre de ressources pour enseignants
Centre d’assistance aux étudiants
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