How to pass a variable from one file to another?

조회 수: 5 (최근 30일)
Ismaeel
Ismaeel 2017년 2월 20일
댓글: Walter Roberson 2017년 2월 22일
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