I pass the vector [0; 0; 2; 0; 0; 2; 0; 0] (8×1) into the FIND block in Simulink. According to the documentation, the output should be the indices of the non-zero elements in the vector. This, by definition, would be a variable size, and the output is shown as variable size (thick dashed line instead of thin solid line). However, the size is 8 and not 2 as I expect it. The output is padded with 0's, so it is [3; 6; 0; 0; 0; 0; 0; 0].
The next step in my simulation is to pass it into an Embedded Matlab script. I configure the input port to be variable size, but when I run it, I get the error "Data is inferred as a variable size matrix, while its specified type is something else."
I tried using a selector block to pick out the first 2 values, but the output is exactly the same – variable size and padded with zeros.
Any advice on how to get the output of FIND into an EML script in Simulink successfully?
Best Answer