Simulink Matlab Function block
Mostrar comentarios más antiguos
I have a Matlab workspace variable called clock_frequency.
I use this variable as a parameter in many of my simulink blocks.
I want to be able to access and alter this variable within my Simulink Matlab Function block, but I cannot do it successfully. Unlike the other simulink blocks (that can see the workspace variables) the matlab function block cannot.
I do not want to create a port and pass the variable in as a signal for various reasons.
Reading through the documentation, I have to use data store memory, but this doesn't seem to work. I got a partial version of this working, and the simulink model began running really slowly.
Respuesta aceptada
Más respuestas (2)
Rubem Pacelli
el 1 de Ag. de 2019
Editada: Rubem Pacelli
el 1 de Ag. de 2019
10 votos
There are another solution for your question.
- Double-click in the MATALAB function block. Will open a script function of your "MATALAB function" block
- click on edit data
- click on add -> data (or just type cntrl+D shortcut keyword)
- type the same name of the variable tha you want pass to MATLAB function block
- In Scope, choose "Parameter" option.
It's work fine in my computer. You need save your variable in the MATLAB workspace.
5 comentarios
Timothy Reilly
el 31 de En. de 2020
Thanks Rubem,
I was struggling so much trying to find a way to do this. This was exactly what I needed to do.
By the way it doesn't seem to like cell arrays, but it seems to work with matracies of type double. Thanks again for posting this.
Tim Reilly
Jianye Xu
el 10 de Mayo de 2020
Thanks, this is a really good way, it helped me solve my problem.
Marlon Trujillo
el 27 de Mayo de 2020
What about the Interpreted Functions? I cannot see the "data" option there...
mohammad nojavan
el 20 de Ag. de 2020
hi rubem i dowloaded a simulink file from internet tath contaies some of " Data store Memory block's" . if i want to change the value of this block they dont change and when i run the simulink file the value of data store memory blocks comeback the initial values. please help me
elec.engeen2011@gmail.com
Sunandan Adhikary
el 7 de Feb. de 2021
This way we n import the variable but it does not get updated! I am trtying to update arrays in a structure and everytime it enters the function it updates that particular indexec position but later when the function is called in next iteration, those values are gone from the array.
Ryan Livingston
el 18 de Dic. de 2013
You may want to add the variable as an input parameter under the ports and data manager:
It will show up in the function block as an input argument like:
function y = fcn(u)
where 'u' will be the parameter name you choose. Then it will search through the workspaces as described in the second link.
3 comentarios
giulio zamboni
el 27 de Abr. de 2019
Hi, and supposing I need also to modify the matrix or array I am passing to the function, how can I do?
I would like to read and write an array in the workspace from my matlab function.
Thanks
Ali Mukhtar
el 12 de Sept. de 2019
Editada: Ali Mukhtar
el 12 de Sept. de 2019
hi how can access the values of variables written in simulink function block?
Marlon Trujillo
el 27 de Mayo de 2020
This is limited to some types of variables...
Categorías
Más información sobre Interactive Model Editing en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!