Matlab as a Scripting Language

By Peter Webb and Gregory V. Wilson

Dr. Dobb's Journal January 1999

(a)
% STACK    Create an empty stack object
%    Constructor for a simple stack class using a cell-array.
function s = stack()
   s.data = {};            % Make an empty cell-array
   s.top = 0;              % Nothing in the stack yet
   s = class(s, 'stack');  % Turn the structure into a class object
 ...
(b)
% PUSH    Add an element to top of stack. Return new stack.
function s = push(s,x)
    s.top = s.top + 1;      % Increment the top index
    s.data{s.top} = x;      % Add the element to the stack
 ...
(c)
% POP    Pop element off top of stack. Return both stack and element.
function [s, e] = pop(s, x)
        if (s.top == 0), error('Cannot pop() empty stack'), end
        e = s.data{s.top};
        s.top = s.top - 1;
 ...
(d)
% DISPLAY   Print contents of a stack object.
% Called automatically to print object when necessary
function display(s)
    disp('Stack object:');
    disp(['  ' num2str(s.top) ' elements']);
    for i=1:s.top
        disp(s.data{i});
    end
 ...

Example 1: A Matlab stack: (a) stack.m; (b) push.m; (c) pop.m; (d) display.m.

Back to Article