How to define a string variable in IF statement

I'm stuck with matlab on almost every simple step I used to work with pretty fast in PHP. How this piece of code inside my function makes me crazy:
matchStr = regexp(filename,'^([0-9\-])+-StockAndOptionQuoteFor([A-z]+)\.', 'tokens');
CurDate = matchStr{1,1}{1,1};
if(~Ticker)
Ticker = matchStr{1,1}{1,2};
end
Matlab keeps telling "Undefined function or variable 'Ticker'." or The variable 'Ticker' might be used before it is defined! But it's a standard practice in PHP. How do I know which type of variable it would be, a string or double?
Ticker='' didn't help

 采纳的回答

global Ticker;
Inside the Function helped. But after the function stops running the global Ticker returns to '' in the workspace. I'm stuck.

1 个评论

Using global variables is not considered good programming practice, and can cause problems. Add the variable to the function argument list instead.

请先登录,再进行评论。

更多回答(1 个)

Spoiler alert: Different languages have different syntax. :-)
Are you trying to check if a variable named "Ticker" exists, and then create it if it does not? Then use the exist function
if ~exist('Ticker','var')
Ticker = matchStr{1,1}{1,2};
end
In MATLAB, "~" means logical negation.

2 个评论

Thanks, Folks. Your advice helped. Moreover, I found the problem which set the Ticker to '' every time I called the function, since the statement global Ticker; reset the variable to empty. So, I took out this piece of code to a more appropriate place outside the function.
This is an example of Star Strider's comment about defining global variables being a generally bad practice. Debugging problems can be a challenge, because code that is "far away" and difficult to find can affect something local.

请先登录,再进行评论。

类别

在 帮助中心 和 File Exchange 中查找有关 Environment and Settings 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by