前回、ベクトルを扱うために先走ってMUXブロックを使ってしまいました。今回からはMUXを含む信号の「ルーティング」用のパレットに含まれるブロックを練習してみたいと思います。スカラーをベクトルにまとめたり、ベクトルをスカラーに分解したり、あるいはベクトルの一部を取り出したりするものども。ついでにGOTOもね。
※「ブロックを積みながら」投稿順 index はこちら
※動作確認にはWindows 11のパソコン(64bit)上にインストールしたScilabの以下バージョンを使用しています。
Scilab 2024.0.0
信号の配線パレット
Signal routing paletteの全貌が以下に。
上記の「いろいろある」ものどもの中から、よく使いそうで、かつScilab素人の老人にも使い方が分かるものを、まずは5つばかり練習してみたいと思います。前回、先走って使ってしまったMUXもおさらいということで含んでおります。
今回練習のダイアグラム
今回練習するのは以下のブロックです。
-
- MUX
- DEMUX
- EXTRACTOR
- FROM
- GOTO
MUXはバラバラに入ってくるスカラー値をまとめてベクトルとして出力することができます。DEMUXはその逆、ベクトルを入力されるとそれを分解してスカラーにして出力することができるもの。Extractor は、入力されたベクトルの特定の要素を取り出すことができるもの。通常のプログラミング言語であるとGOTO文は存在してもプログラムが読みづらくなるからと「ちょっとヤマシイ」気がしたりするかもな要素ですが、Xcosにおいてはごちゃごちゃと配線が重なるよりかはGOTOで飛ばす方がよっぽど分かり易い?とび先はFROMからとりだし。
各ブロックの設定は以下のようです。まずはMUX。スカラー値3個を入力に受け取ってベクトル化する設定です。
DEMUX。入力から入ってきたベクトルを3個のスカラ値に「バラす」設定です。
づついてExtractorの設定です。ベクトルの中でインデックス2の要素を取り出す設定。Indicesと複数形なので複数要素を取り出すこともできるみたいだけどもやってません。
なお、Scilabは添え字1始まりであります。2といったら2番目の要素っす。
シミュレーション結果
上記のダイアグラムをシミュレーションした結果が以下に。のっぺりしたグラフばかりですが、スカラーだったり、ベクトルだったりの様子が分かるっと。
これで配線できる?まだいろいろあるみたいだが。