diff --git a/matlab/subcall_all2str.m b/matlab/subcall_all2str.m
index 8966d184da44bc48e0c6973f93e9f0c7e8742ab0..bc88c279e055876b2631564b2e0e0862c75d3f58 100644
--- a/matlab/subcall_all2str.m
+++ b/matlab/subcall_all2str.m
@@ -33,9 +33,13 @@ for i_in=1:length(varargin)
         if prod(size(aa_values))~= length(aa_values)
           % multi-D input, do not treat it yet
           subcall = [subcall ',''multi-D input'''];
-        elseif length(aa_values) > 1
+        elseif numel(aa_values) > 1
           % array
-          subcall = [subcall ',[' num2str(reshape(aa_values,1,length(aa_values))) ']'];
+          if numel(aa_values) <=30
+            subcall = [subcall ',[' num2str(reshape(aa_values,1,numel(aa_values))) ']'];
+          else
+            subcall = [subcall ',[' num2str(reshape(aa_values(1:4),1,4)) ' ... ' num2str(reshape(aa_values(end-3:end),1,4)) ']'];
+          end
         else
           subcall = [subcall ',' num2str(aa_values) ''];
         end
@@ -47,9 +51,13 @@ for i_in=1:length(varargin)
     if prod(size(var_to_treat))~= length(var_to_treat)
       % multi-D input, do not treat it yet
       subcall = [subcall ',''multi-D input'''];
-    elseif length(var_to_treat) > 1
+    elseif numel(var_to_treat) > 1
       % array
-      subcall = [subcall ',[' num2str(var_to_treat) ']'];
+      if numel(var_to_treat) <=30
+        subcall = [subcall ',[' num2str(reshape(var_to_treat,1,numel(var_to_treat))) ']'];
+      else
+        subcall = [subcall ',[' num2str(reshape(var_to_treat(1:4),1,4)) ' ... ' num2str(reshape(var_to_treat(end-3:end),1,4)) ']'];
+      end
     else
       subcall = [subcall ',' num2str(var_to_treat) ''];
     end