MATLAB: Create Sparse Finite Difference Matrix without Loop

aoviding loops;finite differenceloop-freesparse matrices

In dealing with a finite difference problem over a 1-D domain composed of i nodes, I am trying to create a sparse matrix of elements H(2) to H(i-1) of the following form:
How can I do this without using a loop?

Best Answer

You can create your matrix something like this:
d1 = 1:5 ;
d0 = 1:6 ;
d2 = 1:5 ;
A = diag(d2,-1)+diag(d0)+diag(d1,1) ;