diff general/numerical/mouter.m @ 4:e44f49929e56

Adding reorganised general toolbox, now in several subdirectories.
author samer
date Sat, 12 Jan 2013 19:21:22 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/general/numerical/mouter.m	Sat Jan 12 19:21:22 2013 +0000
@@ -0,0 +1,14 @@
+function B=mouter(varargin)
+% mouter - Multidimensional outer product of multiple arrays
+% Index domain of result is the concatenation of the index domains
+% of the arguments, (with trailing 1s removed).
+%
+% mouter :: [Size1->A], [Size2->A] -> [[Size1,Size2]->A].
+% mouter :: [Size1->A], [Size2->A], [Size3->A] -> [[Size1,Size2,Size3]->A].
+% etc.
+B=1;
+for i=1:length(varargin)
+	B=kron(varargin{i},B);
+end
+B=reshape(B,cell2mat(cellmap(@size1,varargin)));
+