source: proiecte/pmake3d/make3d_original/Make3dSingleImageStanford_version0.1/third_party/lightspeed/@mutable/mutable.m @ 37

Last change on this file since 37 was 37, checked in by (none), 14 years ago

Added original make3d

  • Property svn:executable set to *
File size: 1.8 KB
Line 
1function mut = mutable(v)
2%MUTABLE    Convert to a mutable object.
3% mutable(v) returns a mutable copy of v. 
4% v can be a numeric array, cell array, or structure (but not a string or
5% user-defined object).
6% mutable (with no arguments) is equivalent to mutable(0).
7%
8% Mutable objects are special because if you change them, the changes are
9% visible to all parts of the program.  Ordinary Matlab values do not
10% have this property; changes must be explicitly passed from one routine
11% to another.
12%
13% A mutable object is accessed and modified via subscripted reference, such
14% as x.a or x(5).  Mutable structures support getfield, setfield, rmfield,
15% isfield, and fieldnames.
16%
17% The result is mutable all the way down, e.g. if
18%   x = mutable(struct('a',[4 5]))
19% then x.a and x.a(1) are mutable.
20%
21% Fields can be added to mutable structures but mutable arrays cannot be
22% resized.  Thus there is little point to mutable([]) or mutable({}).
23%
24% A mutable object cannot be used as an ordinary Matlab value, e.g. in
25% matrix operations.  Use 'immutable' to convert to a Matlab value.
26%
27% Mutable objects are less efficient than ordinary matlab values, so
28% you should use them sparingly.  Mutable structures are the most efficient,
29% followed by cell arrays and then numeric arrays.
30%
31% Examples:
32%   x = mutable;
33%   y = x;   % y is a reference, not a copy
34%   x(1) = 4;
35%   y(1)  % prints 4
36%
37%   x = mutable(struct);
38%   y = x;   % y is a reference, not a copy
39%   x.a = 4; % add new field
40%   y.a      % prints 4
41%
42% See also IMMUTABLE.
43
44% Written by Tom Minka
45% (c) Microsoft Corporation. All rights reserved.
46
47if nargin < 1
48  v = 0;
49end
50% java object must be a collection
51mut.obj = toJava(v,1);
52% cache the class name, to save time
53mut.cl = class(mut.obj);
54mut = class(mut,'mutable');
Note: See TracBrowser for help on using the repository browser.