MATLAB Answers


how to make a constant global so all packages files use it?

Asked by Ano
on 23 May 2017
Latest activity Commented on by Steven Lord
on 23 May 2017

hello! I would like to define a constant in such a way all my functions in the package folders use it , how can I do it ?? Thank you in advance .

  1 Comment

Log in to comment.


1 Answer

Answer by Jan Simon
on 23 May 2017
 Accepted Answer

As Stephen has explained already, passing variables as arguments is the best practice.

If you have really good reasons to define a constant globally, do not use global, but prefer a dedicated function, which provides the values as struct:

function C = myPackageConstants()
C.g  = 9.81;
C.pi = 3.14159265;
C.VolumeOfHeidelbergBarrel = 221716;  % liter

Then call this from all function as:

C = myPackageConstants;

This is less clear than using arguments. If it is called very often, it might matter that it has a certain runtime overhead. But in opposite to globals, you can be sure that the values are not modified anywhere, such that debugging gets horrible.


Or if it's a single constant that is broadly usable, like pi, make it a function that returns just that one value. The pi function is built-in, but if it were written as a function file it would be just:

function P = pi
P = 3.14159265358979;

Log in to comment.

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today