About Site Map Submit Contact Us Log in | Create an account
Create an account Log In
Average Rating
User Rating:
Visitors Rating:
My rating:

Write review
  • Last update: 5 years ago
  • Total downloads: 19
  • Operating system: Linux, Mac OS X, Win All, BSD, Solaris
  • Publisher: Matt J (15 other programs)
See full specifications

scripts default iconNameSpace scoping operator (Scripts) Publisher's description

Sometimes, I will receive a directory full of many interdependent mfiles from a colleague

Sometimes, I will receive a directory full of many interdependent mfiles from a colleague. I must install all the files on the path for the main files to work, which means I must also worry that some of these files have the same name as one of my own and will result in file name conflict.

As a remedy, this FEX submission defines the NameSpace class, a user-defined class of namespace scoping operators. Objects of this class effectively allow different MATLAB directory search paths to act as namespaces, so that when a function in a particular colelction of directories is called, MATLAB will only see files in these directories while the function is executing. Hence, my colleague's mfile library can be executed in isolation from mine.

Although MATLAB defines package directories (of the form +mypackage/ ) for this purpose, I find this less convenient, because the package must be prepared with all packaged functions and variables referenced with the package scoping syntax mypackage.blablabla

Conversely, objects of class NameSpace can manipulate a conventionally written library of mfiles as its own self-contained package. To do so, the NameSpace object makes an automatic path change at the time of the function call to a temporary path that includes the library. After the function call is completed, the NameSpace object automatically restores the original path.

The temporary search path contains the desired function library and is specified when the NameSpace object is constructed. The temporary path also contains native MATLAB files/functions but (in the default case) contains no other user-added directories. This means that, at the time of the function call, MATLAB will only be aware of user-defined mfiles in the temporary path, so that name conflict between files in the library and files on the original search path cannot occur.

There are certain hazards/limitations to this scheme, as noted below, but in simple cases, it can provide a useful way to interface to 3rd party file libraries.

EXAMPLE 1: Applying scoping operator to function

%Construct the object.
%DirName is the name of a directory containing,
%along with its subdirectories, a series of
%MATLAB function files.

%func() is implemented in an mfile within DirName/
%or one of its subdirectories.

This will invoke func(arg1,arg2), but after implictly changing the MATLAB path to include DirName/, its subdirectories, and native MATLAB directories.

EXAMPLE 2: The above could also be done equivalently as follows

Obj=NameSpace(DirName); %Construct object.

newspace(Obj); %switches to temporary path


oldspace(Obj); %switches back to original path


(1) Path switching is somewhat slow. Execution is slower than if these
operations are done normally, without path switching.

(2) If a function called through the NameSpace object Obj.f() is a
path-altering operation, it will not work. The path always reverts to
what it was at time of object construction.

(3) Name conflict between classes cannot, unfortunately, be prevented. Once a class
of a particular name is first referenced, MATLAB will only recognize this
class definition, independently of whether this first reference occurs in
the temporary function space, or the original one.

(4) If execution crashes with an error during a call Obj.f(), the temporary path will
not revert back to the original one. Use reset(Obj) or oldspace(Obj) to restore

System Requirements:

MATLAB 7.9 (2009b)
Program Release Status: New Release
Program Install Support: Install and Uninstall

NameSpace scoping operator (Scripts) Tags:

Click on a tag to find related softwares

Is NameSpace scoping operator (Scripts) your software?

Manage your software

Most Popular

scripts default icon ASK, OOK, FSK, BPSK, QPSK, 8PSK modulation 1.1
ASK, OOK, FSK, BPSK, QPSK, 8PSK modulation contain several functions for digital modulation simulation
scripts default icon Simulink Communication Labs 1.1
Simulink Communication Labs allows you to learn communication systems in greater depth.
scripts default icon M-QAM modulation and demodulation 1.1
M-QAM modulation and demodulation is the QAM modulation and demodulation tech.
scripts default icon LZW Compression/Decompression 1.1
LZW Compression/Decompression - Updated LZW compressor and decompressor with reasonable performance
scripts default icon InSPIRE utility to plot a 2D displacement field (Scripts) 1.0
This program plots the deformation field (displace vectors) contained in vector.txt.