Mercurial > repos > public > sbplib
annotate dealStruct.m @ 1198:2924b3a9b921 feature/d2_compatible
Add OpSet for fully compatible D2Variable, created from regular D2Variable by replacing d1 by first row of D1. Formal reduction by one order of accuracy at the boundary point.
author | Martin Almquist <malmquist@stanford.edu> |
---|---|
date | Fri, 16 Aug 2019 14:30:28 -0700 |
parents | b7ec26da3d77 |
children |
rev | line source |
---|---|
874
95993ad2bd70
Add function to deal the fields of a struct to variables
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
1 function varargout = dealStruct(s, fields) |
892
b7ec26da3d77
Handle default arguments better in dealStruct()
Jonatan Werpers <jonatan@werpers.com>
parents:
874
diff
changeset
|
2 default_arg('fields', []); |
874
95993ad2bd70
Add function to deal the fields of a struct to variables
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
3 |
892
b7ec26da3d77
Handle default arguments better in dealStruct()
Jonatan Werpers <jonatan@werpers.com>
parents:
874
diff
changeset
|
4 if isempty(fields) |
b7ec26da3d77
Handle default arguments better in dealStruct()
Jonatan Werpers <jonatan@werpers.com>
parents:
874
diff
changeset
|
5 out = dealFields(s, fieldnames(s)); |
b7ec26da3d77
Handle default arguments better in dealStruct()
Jonatan Werpers <jonatan@werpers.com>
parents:
874
diff
changeset
|
6 varargout = out(1:nargout); |
b7ec26da3d77
Handle default arguments better in dealStruct()
Jonatan Werpers <jonatan@werpers.com>
parents:
874
diff
changeset
|
7 else |
b7ec26da3d77
Handle default arguments better in dealStruct()
Jonatan Werpers <jonatan@werpers.com>
parents:
874
diff
changeset
|
8 assert(nargout == length(fields), 'Number of output arguements must match the number of fieldnames provided'); |
b7ec26da3d77
Handle default arguments better in dealStruct()
Jonatan Werpers <jonatan@werpers.com>
parents:
874
diff
changeset
|
9 varargout = dealFields(s, fields); |
874
95993ad2bd70
Add function to deal the fields of a struct to variables
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
10 end |
95993ad2bd70
Add function to deal the fields of a struct to variables
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
11 end |
892
b7ec26da3d77
Handle default arguments better in dealStruct()
Jonatan Werpers <jonatan@werpers.com>
parents:
874
diff
changeset
|
12 |
b7ec26da3d77
Handle default arguments better in dealStruct()
Jonatan Werpers <jonatan@werpers.com>
parents:
874
diff
changeset
|
13 function out = dealFields(s, fields) |
b7ec26da3d77
Handle default arguments better in dealStruct()
Jonatan Werpers <jonatan@werpers.com>
parents:
874
diff
changeset
|
14 out = cell(1, length(fields)); |
b7ec26da3d77
Handle default arguments better in dealStruct()
Jonatan Werpers <jonatan@werpers.com>
parents:
874
diff
changeset
|
15 for i = 1:length(fields) |
b7ec26da3d77
Handle default arguments better in dealStruct()
Jonatan Werpers <jonatan@werpers.com>
parents:
874
diff
changeset
|
16 out{i} = s.(fields{i}); |
b7ec26da3d77
Handle default arguments better in dealStruct()
Jonatan Werpers <jonatan@werpers.com>
parents:
874
diff
changeset
|
17 end |
b7ec26da3d77
Handle default arguments better in dealStruct()
Jonatan Werpers <jonatan@werpers.com>
parents:
874
diff
changeset
|
18 end |