Global variable scope is not applied in try and catch

global Name;
clear all;
close all force;
prompt = 'Enter Name';
%Name = input(prompt,'s');
Name = input(prompt);
for i=1:10
Depth;
DetectFaceandEyes;
calcEyedistance
try
load db;
euclideanDistance = round(euclideanDistance,1);
F=[euclideanDistance Name distanceAsString];
db=[db;F];
save db.mat db
catch
db =[euclideanDistance Name distanceAsString];
save db.mat db
end
end
Undefined function or variable 'Name'.
Error in Trianing (line 18) db =[euclideanDistance Name distanceAsString];

 채택된 답변

Azzi Abdelmalek
Azzi Abdelmalek 2016년 5월 7일
편집: Azzi Abdelmalek 2016년 5월 7일
global Name;
clear all;
close all force;
prompt = 'Enter Name';
Name = input(prompt)
You declare Name as global, then you clear all the variables, finally you ask to enter the variable Name. You have to remove the: clear all

댓글 수: 6

But even after i declare global Name in another script it is showing error
You have not read this and you really really need to.
Thank You Image Analyst,I studied this guideline and i will take care in future,I follow these guideline i will be more specific in title, full error detail
Image Analyst
Image Analyst 2016년 5월 7일
편집: Image Analyst 2016년 5월 7일
So, you've accepted the answer but last thing you said was there it's still showing an error even after you removed the call to clear.
So, which is it? Is it solved or not?
Ankit Singh
Ankit Singh 2016년 5월 7일
편집: Ankit Singh 2016년 5월 7일
yes it solved
If it wasn't removing the clear, then what was the solution?

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Image Analyst
Image Analyst 2016년 5월 7일
편집: Image Analyst 2016년 5월 7일
You have
global Name;
clear all;
Now, the help says "A variable that is global, then clear removes it from the current workspace, but it remains in the global workspace". Now I think that's a little ambiguous - is Name there or not? When you recreate Name with a call to input():
Name = input(prompt);
Is that a new local variable called Name, or is that the same Name in the global workspace again? I'm not sure. My guess is that it's a local variable that unfortunately now has the same name as the variable in the global workspace. But they're two different variables now. The best thing to do is (like Azzi said) to remove the call to clear.

카테고리

질문:

2016년 5월 7일

댓글:

2016년 5월 7일

Community Treasure Hunt

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

Start Hunting!

Translated by