Code covered by the BSD License  

Highlights from
CounterInBase: Counting in arbitrary base

Be the first to rate this file! 15 Downloads (last 30 days) File Size: 31.4 KB File ID: #26603
image thumbnail

CounterInBase: Counting in arbitrary base

by

 

05 Feb 2010 (Updated )

Counter in arbitrary base with a convenient interface. The counter state can be saved to disc.

| Watch this File

File Information
Description

A simple pseudo-class (using function handles and nested functions) representing a counter in an arbitrary base. Useful e.g. for enumerating numbers in certain base.

c = CounterInBase(3)
   Creates a new counter with base 3 and resets its state to 0.

c.next(), or
c.next(1)
   Returns the state of the counter and increments it by 1.

c.next(0)
   Returns the state of the counter and does not change its state.

c.next(20)
   Returns a matrix of the next 20 numbers and advances the state of the counter by 20.

c.save('filename')
   Saves the counter state to disc. If no filename is given, it uses the default name 'CounterInBaseState'.

c.load('filename')
   Loads the previously stored counter state from disc. If no filename is given, it loads from file with the default name 'CounterInBaseState'.
   NOTE: To be able to call the c.load() method, the counter must first exist: c.load() must be preceded by the call to c = CounterInBase(x), i.e. the c counter may be in any state with any base.

Example:

  >> c = CounterInBase(3);
  >> c.next()
  ans =
       0
  >> c.next()
  ans =
       1
  >> c.next()
  ans =
       2
  >> c.next()
  ans =
       1 0
  >> c.next(3)
  ans =
       1 1
       1 2
       2 0
  >> c.next(4)
  ans =
       0 2 1
       0 2 2
       1 0 0
       1 0 1
  >> c.next(0)
  ans =
       1 0 2
  >> c.next(0)
  ans =
       1 0 2

MATLAB release MATLAB 7 (R14)
Other requirements Uses function handles.
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Updates
08 Feb 2010

The original archive contained the .svn directory by mistake.

Contact us