How to Generate Scope Values From Vectors In Simulink? - matlab

I have this Simulink System that needs to create a matrix from image source, turn it to vector, then display it in scope. I tried many things, using for block just created 1's and not 0's so I give up on that. I tried repeating sequence block too but it's not practical. How can I solve it? Thanks in advance.
(code in MATLAB FUNC)

Related

Null Vector in LabVIEW

I need to find the "null vector" of the matrix in LabVIEW. But I couldn't find the related block.
For example in MatLab, for the Matrix A we can simply find the null vector with the command: null(A); But in LabVIEW I can't do this till now.
Could someone help me?
One easy way to do this is to use the MathScript node, which allows for many Matlab commands to be used in LabVIEW. Here's an example:
If you don't want to use the MathScript node, then you can get the result from the "Matrix V" output of "SVD decomposition" as shown in the second part of the code.

Sample sequence of points from continuous signal simulink

I have a Matlab function (created by me) that must be evaluated only at a given rate. I would like to sample the value of a signal, give to this function (discrete values) and then, the calculated output must be hold until the next value is available. Is there a way in simulink to do this? All answers I have found use quantizer + ZOH but in this case I still get "a continuum" (or almost it) of points to be evaluated by thsi function which is really slow. Changing the rate of simulink's solver is also not an option as the result of this function will be given for a continuous time system.
Any help will be highly appreciatted!
Thank you
Assuming by Matlab function you mean a MATLAB Function block, then it sounds as if all you need to do is make the block discrete. Do that by right-clicking on the block, going down to Block Properties and then in the resulting dialog enter your required sample time.
The block will then sample its input and generate an output (which is held between sample times) at each sample time.

Heterogeneous data from workspace into Simulink

I have different matrices to import into a Simulink Matlab function from the workspace. These matrices have all different dimension, which I don´t know at priori.
At the beginning I tried using the block 'constant' putting the data all together in a structure like this:
But then, I cannot pick the right matrix since I don´t know the dimension of each element (and also 'mux' cannot be used to split matrices).
I think I will have the same problem also with the block 'from workspace'.
I was wondering if there is a smart way to import heterogeneous structures like these. I tried also with cell-arrays, but it seems to be not supported by Simulink.
Thanks for any suggestions.
If the data is to be used in a Matlab Function block you could define the workspace matricies as parameters in the model explorer and in the Matlab Function port editor. You then have them accessible inside that function without even needing the "const" blocks or drawing any signals.
Even if your final intent is not to have data into a Matlab Function block those blocks are quite useful for extracting signals from heterogeneous data since you can do some size/type checking in them. Then you can output "simulink friendly" signals for use elsewhere.

Iterate over array from workspace at each sample time in Simulink MATLAB function block

I have a MATLAB function block embedded in a Simulink model. In my initFnc callback I set up some vectors which I need to use in my function block inside the simulink model. The vector is 1x10000 and contains setpoints for a robotic arm. The function block simply needs to read the next value at each sample iteration.
So far I've tried using "From Workspace" and "evalin()" but they all throw various errors when building the model (I'm using code generation which doesn't play nice all the time).
What would be a good way to read in that vector in Simulink and feed the cells one by one into my function block? Something like repeating sequence stair but without the repeating part.
I got it to work by reading in the vector into a constant block and feeding that into my embedded function. I then use a persistent iterator which is a 1x1 matrix (ones(1)) and incrementing it every time the value from the vector is read.

Structure as output of MATLAB Function Block through Simulink.Bus object

I have a MATLAB Function Block where I compute X variables that I want to use later in a script.
My first option was to use To Workspace blocks for each of them, but since I have X variables, it fills up the model with blocks. The problem is that these X variables have different dimensions, otherwise I could just build a matrix.
My idea was to build a structure within the MATLAB Function Block and then use a single To Workspace block, but my research told me I would need a Simulink.Bus object to do so.
Is this approach at all the best way to achieve my goal? Thanks in advance for your input!