Using the global operator
显示 更早的评论
I have a function below.
As you can see if t==1 I create a vector kk. However, I can not use this kk in the 'else' statement unless I use 'global kk''. Is that correct?
function [ll mm]= ssample(e2,t)
global kk
if t==1
kk=zeros(T,1);
for s=1:T
kk(s) =...;
end
else
for s=t:T
ll =kk(s) ;
end
end
mm=kk;
end
5 个评论
John D'Errico
2019-5-9
I edited your code to fix the indenting and make it readable.
ektor
2019-5-9
Walter Roberson
2019-5-9
编辑:Walter Roberson
2019-5-9
We have no reason to expect that t will be 1 before it is anything else.
The correct way to use the global operator is mostly to not use it.
I suspect you should be using
persistent kk
if isempty(kk)
... initialize kk here ...
end
ektor
2019-5-9
Walter Roberson
2019-5-9
We would need the calling code to be sure that t starts at 1.
Better to avoid the matter, such as the way Matt suggests.
采纳的回答
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Programming 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!