Mercurial > repos > public > sbplib
changeset 817:b723495cdb2f v0.2
Add functions for easily creating struct arrays and struct cell arrays
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Fri, 07 Sep 2018 09:21:57 +0200 |
parents | 2ce903f28193 |
children | 44f05d7b6f0a fdf0ef9150f4 |
files | structArray.m structCellArray.m |
diffstat | 2 files changed, 32 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
diff -r 2ce903f28193 -r b723495cdb2f structArray.m --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/structArray.m Fri Sep 07 09:21:57 2018 +0200 @@ -0,0 +1,16 @@ +% % Usage example: +% c = structArray({'a','b'}, { +% 1, 2; +% 3, 4; +% }); + +function c = structArray(fields, values) + assert(length(fields) == size(values, 2), 'Number of fields and number of colums of ''values'' must be equal'); + c = struct(); + + for i = 1:size(values, 1) + for j = 1:length(fields) + c(i).(fields{j}) = values{i,j}; + end + end +end
diff -r 2ce903f28193 -r b723495cdb2f structCellArray.m --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/structCellArray.m Fri Sep 07 09:21:57 2018 +0200 @@ -0,0 +1,16 @@ +% % Usage example: +% c = structCellArray({'a','b'}, { +% 1, 2; +% 3, 4; +% }); + +function c = structCellArray(fields, values) + assert(length(fields) == size(values, 2), 'Number of fields and number of colums of ''values'' must be equal'); + c = cell(1, size(values, 1)); + + for i = 1:size(values, 1) + for j = 1:length(fields) + c{i}.(fields{j}) = values{i,j}; + end + end +end