Mercurial > repos > public > sbplib
annotate dealStruct.m @ 1037:2d7ba44340d0 feature/burgers1d
Pass scheme specific parameters as cell array. This will enabale constructDiffOps to be more general. In addition, allow for schemes returning function handles as diffOps, which is currently how non-linear schemes such as Burgers1d are implemented.
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Fri, 18 Jan 2019 09:02:02 +0100 |
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 |