Nested functions procedure error
显示 更早的评论
Hi,
I created some nested function but it reports the error. In the first function, I calculated values for temperatures x1 and x2. Then, I defined function result that represents thermostat which should determine should thermostat be on or off in each iteration. In case that thermostat does not work in each iteration, temperature raise. Here are the functions:
function xprime = heat_sys(t,x);
params...
xprime = (system of diff equat)
function result = thermostat(x);
on = true;
off = false;
for i=1:n(end)
if(x(i,1)>=18 && x(i,1)<=20)
result(i)=on;
else if(x(i,1)<18)
result(i)=on;
else if(x(i,1)>20)
result(i,1)=off;
end;
end;
end;
end;
By the way, is this right approach to do this or I could use something different also?
Thanks in advance!
8 个评论
Arthur
2013-9-9
What is the error you get?
Nikola
2013-9-9
Arthur
2013-9-9
How do you call the two functions?
Nikola
2013-9-9
Walter Roberson
2013-9-9
Nesting a function does not cause the function to be called. MATLAB would not know what arguments to call the function on, or what variable to write the output to. You need to have an explicit call to thermostat in your code.
Walter Roberson
2013-9-9
The xprime you are returning does not look to involve values calculated by thermostat(). If it actually does, then you would have the calls in the way you defined your system of equations... e.g.,
xprime = [ .... t^5+thermostat(x), ....]
If, though, the differential equation matrix is not calculated in terms of thermostat calls, then some other layer needs to receive the result of the thermostat calls. What layer is that?
Nikola
2013-9-9
采纳的回答
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Programming 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!