diff dealStruct.m @ 895:ba037fd21e9f bcSetupExperiment

Merge with default
author Jonatan Werpers <jonatan@werpers.com>
date Thu, 22 Nov 2018 07:31:42 +0100
parents b7ec26da3d77
children
line wrap: on
line diff
--- a/dealStruct.m	Fri Nov 02 11:14:06 2018 +0100
+++ b/dealStruct.m	Thu Nov 22 07:31:42 2018 +0100
@@ -1,9 +1,18 @@
 function varargout = dealStruct(s, fields)
-    default_arg('fields', fieldnames(s));
+    default_arg('fields', []);
 
-    assert(nargout == length(fields), 'Number of output arguements must match the number of fields');
-
-    for i = 1:length(fields)
-        varargout{i} = s.(fields{i});
+    if isempty(fields)
+        out = dealFields(s, fieldnames(s));
+        varargout = out(1:nargout);
+    else
+        assert(nargout == length(fields), 'Number of output arguements must match the number of fieldnames provided');
+        varargout = dealFields(s, fields);
     end
 end
+
+function out = dealFields(s, fields)
+    out = cell(1, length(fields));
+    for i = 1:length(fields)
+        out{i} = s.(fields{i});
+    end
+end