如何在 matlab 中生成具有下一个值的矩阵?

How to generate a matrix in matlab with the next values?

我有下一个问题,知道矩阵的大小是 NxN 如何构建具有特定值的矩阵。

Here is my question

我正在尝试下一个代码:

  a = (1+2*Du*dt/dx^2);  
  b = -Du*dt/dx^2;        
  main = a*sparse(ones(Nx,1));
  off  = b*sparse(ones(Nx-1,1));
  Bu = diag(main) + diag(off,1) + diag(off,-1);

但是如您所见,(1,1) 和 (N,N) 中没有所需的值,那么我该如何构建这个特定的矩阵呢? MATLAB 中的代码如何?

spdiags是要走的路,

A = sparse(Nx);
A = spdiags(b*ones(Nx-1,1), -1, A);
A = spdiags(a*ones(Nx,1), 0, A);
A = spdiags(b*ones(Nx-1,1), 1, A);
A(1, 1:2) = [1,1];
A(N, N-1:N) = [1,1];