How does Simulink Selector block work to extract dimension MxN matrix into 1xN row vectors?
35 次查看(过去 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!