4x1 vector to 2x1 vector with S function

2 次查看(过去 30 天)
Hi,
I have written an Level-2 S-function which creates a 2x1 vector from a 4x1 vector, that it, taking out the first 2 elements.
The function “Output()” is:
function Output(block)
block.OutputPort(1).Data = block.InputPort(1).Data(1:2);
Error: Attempt to assign a matrix of dimentions [2x1] to a matrix of
dimensions [4x1].
So I added the following code to the function “Setup()”:
function Setup(block)
block.OutputPort(1).Dimensions = [2,1];
This time the error is:
Invalid dimentsion has been specified for input port 1 of …
Now I am helpless with this problem. Who can help me with this problem?
Thanks Senmeis

采纳的回答

Shashank
Shashank 2012-9-26
Hi,
The reason the error is cropping up is because, while the Output Port Dimensions have been explicitly specified, the S-function is relying on implicit inheritance to determine the dimensions of the Input Port. Due to the differing sizes, there's a conflict. By specifying the InputPort dimensions in this way in the setup method:
block.InputPort(1).Dimensions = 4;
you would be explicitly specifying the Input Port dimensions and the S-function should run fine.

更多回答(0 个)

标签

产品

Community Treasure Hunt

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

Start Hunting!

Translated by