Then Matlab will not operate on all the zeros!
function
K=KTBC(type,n,sparse)
% KTBC Create finite difference model matrix.
%
K=KTBC(TYPE,N,SPARSE) creates model matrix TYPE of size N-by-N.
% TYPE is one
of the characters 'K', 'T', 'B', or 'C'.
% The command K = KTBC('K', 100, 1)
gives a sparse representation
% K=KTBC uses the defaults TYPE='K', N=10, and
SPARSE=false.
% Change the 3rd argument from 1 to 0 for dense
representation!
% If no 3rd argument is given, the default is dense
% If
no argument at all, KTBC will give 10 by 10 matrix K
if nargin<1,
type='K'; end
if nargin<2, n=10;
end
e=ones(n,1);
K=spdiags([-e,2*e,-e],-1:1,n,n);
switch
type
case 'K'
case 'T'
K(1,1)=1;
case 'B'
K(1,1)=1;
K(n,n)=1;
case
'C'
K(1,n)=-1;
K(n,1)=-1;
otherwise
error('Unknown matrix type.');
end
if nargin<3 |
~sparse
K=full(K);
end