How to pass a variable from one file to another?

2 次查看(过去 30 天)
Hi all, I have a matlab function block in Simulink with a feedback. The input to the function is a constant that changes with the time. The function calls another function includes ode15s (File1) that must get their equations from another file (File2). I want to pass the value of B from the main matlab function file to File2 to be used there. I used global but that did not work. Any idea?
Matlab Function File:
function y = fcn(B)
...
y=File1
%-----------------------------
File 1
function [t,x]=File1
....
[t,x] = ode15s(@File2,tspan,x0,opt);
%-----------------------------------
File2
function out= File2(t,x)
...
out=[some equations that use "B" as a constant]
%-----------------------------------------------------
%
  3 个评论
Ismaeel
Ismaeel 2017-2-20
"The GLOBAL declaration must precede any use of the variable B."
Ismaeel
Ismaeel 2017-2-20
"Global declaration not resolved to a Data Store Memory block registered via the Ports and Data Manager."

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2017-2-20
  7 个评论
Ismaeel
Ismaeel 2017-2-21
I am trying to upload a picture of the error but there is something prevents it after uploading it. Anyway, this is what i got: Nested functions are not supported.
Function 'MF' (#83.127.128), line 8, column 15: "f" Launch diagnostic report.
Walter Roberson
Walter Roberson 2017-2-22
If you have multiple functions in the same file, make sure each is terminated with "end" as soon as it is finished.
function y = fcn(B)
...
y = File1(B)
end
%-----------------------------
function [t,x] = File1(B)
....
[t,x] = ode15s(@(t,x) File2(t,x,B), tspan, x0, opt);
end
%-----------------------------------
function out = File2(t, x, B)
...
out=[some equations that use "B" as a constant]
end
%----------------------------------------------------

请先登录,再进行评论。

更多回答(1 个)

Ismaeel
Ismaeel 2017-2-20
Also, I added a block "To Workspace" with the name "B" but still B is undefined.

类别

Help CenterFile Exchange 中查找有关 Event Functions 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by