Accessing variables from workspace into user-created function block in Simulink

Good afternoon,
As the title suggests, I defined some variable say, x in the workspace that has a number.
Using MATLAB function, I am trying to import that variable (just once!) and as simulation progress, under
certain condition, I want to increment that variable. However, since the function does not 'see' the variable x,
I end up declaring that variable inside the MATLAB Function Block. However, this keeps initializing the variable
and thus, I cannot increment it.
I need help to resolve this problem!

 采纳的回答

You can declare your variable as persistent
function y=fcn(u)
persistent v
if isempty(v)
v=your_constant
end
v=v+increment

3 个评论

yes about that. I was looking around and I was messing with persistent as well. Would you mind explaining what exactly persistent does? I read the help doc it doesn't really ring a bell.. Thank you anyways!
At time =0 , v takes the value your_constant. And each iteration the variable v will be incremented. persistent allows to remember the value of v
Actually I figured it out. No need for an answer. Thanks for brilliant answer!

请先登录,再进行评论。

更多回答(0 个)

类别

产品

Community Treasure Hunt

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

Start Hunting!

Translated by