MATLAB Answers

Ma
1

3次元以上の配列のmatlab coderでの取り扱い

Asked by Ma
on 13 Feb 2017
Latest activity Commented on by Ma
on 14 Feb 2017

matlab coderで関数mファイルをmexファイルに変換する際に関しての質問です。 アプリとしてmatlab coderを利用し、ダイアログに従ってmexファイルを作成する際に、matlab coderではなく自分で引数のデータ型を選ぶことが出来ると思います。その際に、可能であれば3次元以上の配列(例えばL×M×Nの配列)を利用したいのですが、どうもで2次元の配列(つまり行列)までしか対応していないように思われます。

実際、3次元以上の配列にはmatlab coderもしくはmexは対応していないのでしょうか?どうぞ宜しくお願い致します。

  0 Comments

Sign in to comment.

1 Answer

Answer by Kei Otsuka
on 13 Feb 2017
Edited by Kei Otsuka
on 13 Feb 2017
 Accepted Answer

コード生成の際にMATLAB Coder Appをお使いということですと、 入力の型を定義する画面上ではデフォルトで2次元配列の選択肢しかありませんが、 ご自身でx記号を置いていただく事で次元を拡張することができます。

もしくは、コマンドラインでも引数の次元を指定してMEX生成が可能ですので、 参考にしてみてください。 以下はmyEdgeというユーザー定義関数に対して、引数として4次元配列(391x518x3x2)を 与えてMEXを生成した例になります。

cfg = coder.config('mex')
dtype = coder.typeof(uint8(0),[391 518  3  2])
codegen -config cfg myEdge -args dtype

  1 Comment

Ma
on 14 Feb 2017

こんな簡単にできるなんて知りませんでした。感動しました。大変助かります。有り難うございました。

Sign in to comment.