After an if-exist block, why does script stop executing? In example below the code never gets to the final line. I feel that regardless of the state of the if block, the final line should execute. If I comment out the if and end lines, then I do get to the final line.
IniParamFlag=1;
if exist('Params','var')==1,
IniParamFlag=menu('Initialize parameters','yes','no');
end
IniParamFlag

3 commentaires

Adam
Adam le 29 Juin 2016
Seems to work fine for me.
John Knowles
John Knowles le 30 Juin 2016
Interesting. What version are you using? I'm on MATLAB Version: 8.6.0.267246 (R2015b). I find that if the condition evaluates to '1', then the code inside the if/end is executed, but nothing after the end. If instead it evaluates to zero, then nothing further is executed.
Adam
Adam le 30 Juin 2016
R2016a

Connectez-vous pour commenter.

 Réponse acceptée

Walter Roberson
Walter Roberson le 29 Juin 2016

1 vote

You appear to have a control-Z immediately after your 'end' as the very next character.

5 commentaires

John Knowles
John Knowles le 30 Juin 2016
I'm not sure what a control-Z character is, but in any case I could not spot any characters folllowing the end. Just to be sure I tried terminating the lines with semi-colons and it made no difference. Could you please explain further if it looks like I misunderstood your reply?
Image Analyst
Image Analyst le 30 Juin 2016
Modifié(e) : Image Analyst le 30 Juin 2016
Put the cursor after the "d" in "end" and hit delete. You may not see any effect because it will delete an invisible character. But it will run after that.
Alternatively, hit the end key and then the backspace key to delete your control-Z character.
By the way, you shouldn't put a comma at the end of your if line, though it doesn't harm anything - it's just not standard coding practice.
If you go back up to your initial question here and click on the pencil to edit your question, and look at your code, then as the first next character after end you will see a little rectangular box with some writing in it. That writing is
00
1A
and a box with 001A in it is the representation for a character that has no glyph in the font but whose hex representation is 001A which is decimal 26 which is control-Z .
John Knowles
John Knowles le 7 Jan 2017
Modifié(e) : John Knowles le 7 Jan 2017
Thank you Walter and Image Analyst for taking the time to explain this. I somehow missed your last replies until now, when I got hit with a new instance of the problem. You were exactly right and the problem is now solved.
Stephen23
Stephen23 le 7 Jan 2017
Modifié(e) : Stephen23 le 7 Jan 2017
This is a good example of where Notepad++ is an extremely handy text editor to have around: the menu View -> Show Symbol has a number of options, and makes finding bugs like this one easy.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Symbolic Math Toolbox dans Centre d'aide et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by