function y=le(a,b); %le operator, overloaded for flexible dimensions in gauss [ra,ca]=size(a); [rb,cb]=size(b); if (ra==rb & ca==cb) | (ra==1 & ca==1) | (rb==1 & cb==1); y=builtin('le',a,b); elseif (ra==rb & ca==1 & cb>1); y=zeros(rb,cb); for i=1:1:cb; y(:,i)=builtin('le',a,b(:,i)); end; elseif (ra==rb & ca>1 & cb==1); y=zeros(rb,ca); for i=1:1:ca; y(:,i)=builtin('le',a(:,i),b); end; elseif (ca==cb & ra==1 & rb>1); y=zeros(rb,cb); for i=1:1:rb; y(i,:)=builtin('le',a,b(i,:)); end; elseif (ca==cb & ra>1 & rb==1); y=zeros(ra,ca); for i=1:1:ra; y(i,:)=builtin('le',a(i,:),b); end; elseif (ca==1 & cb>1 & ra>1 & rb==1); % a col. vector, b is a row vector y=zeros(ra,cb); for i=1:1:ra; y(i,:)=builtin('le',a(i,1),b); end; elseif (cb==1 & ca>1 & rb>1 & ra==1); % b col vector ,a is a row vector y=zeros(rb,ca); for i=1:1:rb; y(i,:)=builtin('le',b(i,1),a); end; else; disp('le.m: matrices are not conformable'); disp(size(a)); disp(size(b)); end;