diff scripts/general/repmat.m @ 4964:269c3d6c0569

[project @ 2004-09-04 01:16:28 by jwe]
author jwe
date Sat, 04 Sep 2004 01:16:28 +0000
parents 4bd917f8a4a7
children 5208182e2e62
line wrap: on
line diff
--- a/scripts/general/repmat.m
+++ b/scripts/general/repmat.m
@@ -55,7 +55,16 @@
     if (isstr (a))
       x = setstr (toascii (a) * ones (idx));
     else
-      x = a * ones(idx, class(a));
+      if (strcmp (class (a), "double"))
+	## This is faster with octave for double/Complex
+	x = a * ones(idx, class(a));
+      else
+	cidx = cell (1, length (idx));
+	for i=1:length(idx)
+	  cidx{i} = ones (1,idx(i));
+	endfor
+	x = a (cidx{:});
+      endif
     endif
   elseif (ndims (a) == 2 && length (idx) < 3)
     if (isstr (a))