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!