How to use global variables inside a function?

1.090 visualizaciones (últimos 30 días)
Saraswatula Sai Pavan Sastry Sastry SOME
Editada: Image Analyst el 26 de Oct. de 2021
I have declared a global variable outside function. When I wish to use that global variable within a function(without giving it as an input argument), MATLAB is giving an error.

Respuestas (2)

Basil C.
Basil C. el 27 de Sept. de 2018
First you need to define a variable say x as global
global x
x=5
Then in the function definition which is using the global variable x just add the following line and you should be good to go
function A=hello()
global x
A= 5*x;
end
  2 comentarios
Daniela Ardila Ospina
Daniela Ardila Ospina el 26 de Jun. de 2021
Thank you so much!
tuan nguyen minh
tuan nguyen minh el 26 de Oct. de 2021
oh thanks so much, your answer helps me

Iniciar sesión para comentar.


Image Analyst
Image Analyst el 27 de Sept. de 2018
Editada: Image Analyst el 26 de Oct. de 2021
It works for me. Did you declare the variable as global inside the function? You have to. If you did, then you must have a "clear all" or "clear global" in your function. Get rid of the clear statement and it will work.
See informative comments below in the code:
% Main.m
global y;
y = 10;
out1 = func1(7)
out2 = func2(9)
%==================================================================================
% func1.m -- can see y. Declared y global so this function can see it.
function out = func1(z)
global y; % Declare y as global at beginning so the rest of the function can see it.
z = y; % Will NOT throw an error because y is declared global inside func1().
%==================================================================================
% func2.m -- can NOT see y. NOT declared y global so this function can NOT see it.
function out = func2(z)
z = y; % Will throw an error because y is not declared global inside func2().
%==================================================================================
% func3.m -- can NOT see y. NOT declared y global so this function can NOT see it.
function out = func3(z)
global y; % Declare y as global at beginning so the rest of the function can see it.
clear global % DO NOT do this. Doing this will remove the ability of func3() to be able to see y!!!
z = y; % Will throw an error because y is not longer seen inside func3().

Categorías

Más información sobre Variables en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by