Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F97794035
gencode_substructcode.m
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Mon, Jan 6, 11:12
Size
3 KB
Mime Type
text/x-Algol68
Expires
Wed, Jan 8, 11:12 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
23317036
Attached To
R10025 iCAPs public version 2
gencode_substructcode.m
View Options
function
str
=
gencode_substructcode
(
subs
,
name
)
%
GENCODE_SUBSTRUCTCODE
Create
code
for
a
subscript
structure
%
Generate
MATLAB
code
(
using
SUBSTRUCT
)
to
create
subscript
structure
%
subs
.
See
help
on
SUBSTRUCT
,
SUBSASGN
and
SUBSREF
for
details
how
%
subscript
structures
are
used
.
%
%
str
=
gencode_substructcode
(
subs
,
name
)
%
Input
arguments:
%
subs
-
a
subscript
structure
%
name
-
optional:
name
of
variable
%
Output
arguments:
%
str
-
a
one
-
line
cellstr
containing
a
call
to
SUBSTRUCT
that
returns
%
an
substruct
equivalent
to
subs
.
%
If
name
is
supplied
as
input
argument
,
the
generated
code
will
assign
%
the
output
of
SUBSTRUCT
to
the
variable
'
name
'
.
%
then
only
the
rhs
of
the
expression
will
be
returned
.
%
For
'
()
'
and
'
{}
'
also
pseudo
subscripts
are
allowed:
if
subs
.
subs
{...}
%
is
a
string
,
it
will
be
printed
literally
,
even
if
it
is
not
equal
to
%
':'
.
This
way
,
one
can
create
code
snippets
that
contain
e
.
g
.
references
%
to
a
loop
variable
by
name
.
%
%
See
also
GENCODE
,
GENCODE_RVALUE
,
GENCODE_SUBSTRUCT
.
%
%
This
code
has
been
developed
as
part
of
a
batch
job
configuration
%
system
for
MATLAB
.
See
%
http:
//sourceforge.net/projects/matlabbatch
%
for
details
about
the
original
project
.
%
_______________________________________________________________________
%
Copyright
(
C
)
2007
Freiburg
Brain
Imaging
%
Volkmar
Glauche
%
$Id:
gencode_substructcode
.
m
3355
2009
-
09
-
04
09
:
37
:
35
Z
volkmar
$
rev
=
'
$Rev:
3355
$
'
;
%
#
ok
ind
=
1
;
if
nargin
<
2
name
=
''
;
end
if
~
isstruct
(
subs
)
||
~
all
(
isfield
(
subs
,
{
'
type
','
subs
'
}))
if
any
(
exist
(
'
cfg_message
'
)
==
2
:
6
)
cfg_message
(
'
matlabbatch:
usage
'
,
'
Item
is
not
a
substruct
.
'
);
else
warning
(
'
gencode_substructcode:
usage
'
,
...
'
Item
is
not
a
substruct
.
'
);
end
else
if
isempty
(
subs
)
str
=
{
'
struct
(
''
type
''
,{},
''
subs
''
,{})
'
};
else
str
=
{
'
substruct
(
'
};
for
k
=
1
:
numel
(
subs
)
str
{
1
}
=
sprintf
(
'
%
s
''
%
s
'
','
,
str
{
1
},
subs
(
k
).
type
);
switch
subs
(
k
).
type
case
'.'
,
substr
=
sprintf
(
'''
%
s
'''
,
subs
(
k
).
subs
);
case
{
'
()
','
{}
'
},
substr
=
'{'
;
for
l
=
1
:
numel
(
subs
(
k
).
subs
)
if
ischar
(
subs
(
k
).
subs
{
l
})
if
strcmp
(
subs
(
k
).
subs
{
l
},
':'
)
substr
=
sprintf
(
'
%
s
'
':'
'
,
'
,
substr
);
else
substr
=
sprintf
(
'
%
s
%
s
,
'
,
substr
,
subs
(
k
).
subs
{
l
});
end
else
substr1
=
sprintf
(
'
%
d
'
,
subs
(
k
).
subs
{
l
});
if
numel
(
subs
(
k
).
subs
{
l
})
>
1
substr1
=
sprintf
(
'
[
%
s
]
'
,
substr1
(
1
:
end
-
1
));
else
substr1
=
substr1
(
1
:
end
-
1
);
end
substr
=
sprintf
(
'
%
s
%
s
,
'
,
substr
,
substr1
);
end
end
substr
=
sprintf
(
'
%
s
}
'
,
substr
(
1
:
end
-
2
));
end
str
{
1
}
=
sprintf
(
'
%
s
%
s
,
'
,
str
{
1
},
substr
);
end
str
{
1
}
=
sprintf
(
'
%
s
)
'
,
str
{
1
}(
1
:
end
-
2
));
end
if
~
isempty
(
name
)
str
{
1
}
=
sprintf
(
'
%
s
=
%
s
;
'
,
name
,
str
{
1
});
end
end
Event Timeline
Log In to Comment