How does Simulink Selector block work to extract dimension MxN matrix into 1xN row vectors?
25 ビュー (過去 30 日間)
古いコメントを表示
Recently I was trying to take a 2x5 matrix signal and convert it into two 1x5 row vectors for further computation. To do so, I used the Simulink Selector block, and selected a 2 dimensional input (M of my MxN). Then to try and get just a row vector for dimension 1 and 2 respectively, I selected the Starting Index Option, and made sure that dimensional values were consistent (see image):

This setup works for the first row vector, but fails for the second row vector claiming the following error:

I eventually figured out how to split them into row vectors correctly via the following setup:

I am curious why the first setup works for the first row, but fails for the second row. Is this a bug, or do I have a fundamental misunderstanding of how this selector block is functioning? It seems odd that it would work in an inconsistent manner.
2 件のコメント
Bish Erbas
2018 年 9 月 24 日
That's because when the Starting index (dialog) option is used, Simulink selects the elements based on the Index column and Output Size. Your input has only 5 columns. If you set Index to 2 and Output Size to 5, you are telling Simulink to select columns 2 3 4 5 6 (size of 5). If your goal is to extract the last 4 column elements in the 2nd row, you can set output size to 4. Result would be 7 8 9 10.
採用された回答
Fangjun Jiang
2018 年 9 月 24 日
Are you sure? I tried as your example and there is no error. The error happened in "Selector1" yet the dialog show "Selector2" and "Selector3".
3 件のコメント
Fangjun Jiang
2018 年 9 月 24 日
The problem lies in the second dimension. The input is 2x5, so for the second dimension, if you starts with 2 but the output size is 5, then it requires 2x6 input. If you change the size from 5 to 4, then the error disappears.
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!