Simulinkでu​int8の配列をバス​オブジェクトに変換す​るブロックの記述方法

9 views (last 30 days)
tnksral
tnksral on 4 Sep 2017
Commented: tnksral on 20 Sep 2017
matlab function blockを使うことが考えられますが、 その中でmemcpyに相当することを行うにはどのようにすればよろしいでしょうか。
もしくは既存のsimulink ブロックを使って行う方法があれば教えてください。

Answers (1)

Yoko
Yoko on 7 Sep 2017
配列からバスオブジェクトへ変換するだけであれば、Bus Creator ブロックで変換できます。 memcpy を行うということですが、uint8の配列をコピーして、2つの配列をバスオブジェクトとして定義したいということでしょうか。 上記を基本ブロックで実現するのであれば、例えば下記の図のような方法が考えられます。
モデルも添付しますので、動作など確認してみてください。
  1 Comment
tnksral
tnksral on 20 Sep 2017
上記のサンプルモデルでは、 ある要素(次元3のuint8の配列)を、バス内の同サイズの要素(次元3のuint8の配列)へコピーしているのですが、
行いたいのは例えば、 ある要素(次元4のuint8の配列)を、定義が異なるバス(次元2のuint16)へコピーすることです。
またこれを複雑化して、 次元Nのuint8の配列を、バスがネストされたバスにコピーすることも可能でしょうか?

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!