Mercurial > repos > public > sbplib
changeset 7:8add0564ad6a
Added functions for converting structs to string representations.
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Mon, 21 Sep 2015 14:50:51 +0200 |
parents | c3c95b7a1a1c |
children | 67ab7fd8054c |
files | struct2string.m struct2syntax.m |
diffstat | 2 files changed, 50 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/struct2string.m Mon Sep 21 14:50:51 2015 +0200 @@ -0,0 +1,25 @@ +function str = struct2string(s) + fn = fieldnames(s); + + if length(fn) == 0 + str = '{}'; + return + end + + str = sprintf('{'); + + for i = 1:length(fn) - 1 + value = s.(fn{i}); + str = [str sprintf('%s: %s, ',fn{i}, valueString(value))]; + end + value = s.(fn{end}); + str = [str sprintf('%s: %s}',fn{end}, valueString(value))]; +end + +function str = valueString(value) + if ischar(value) + str = ['''' value '''']; + else + str = num2str(value); + end +end \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/struct2syntax.m Mon Sep 21 14:50:51 2015 +0200 @@ -0,0 +1,25 @@ +function str = struct2syntax(s) + fn = fieldnames(s); + + if length(fn) == 0 + str = 'struct()'; + return + end + + str = sprintf('struct('); + + for i = 1:length(fn) - 1 + value = s.(fn{i}); + str = [str sprintf('''%s'', %s, ',fn{i}, valueString(value))]; + end + value = s.(fn{end}); + str = [str sprintf('''%s'', %s)',fn{end}, valueString(value))]; +end + +function str = valueString(value) + if ischar(value) + str = ['''' value '''']; + else + str = num2str(value); + end +end \ No newline at end of file