如何在 matlab 中生成具有下一个值的矩阵?
How to generate a matrix in matlab with the next values?
我有下一个问题,知道矩阵的大小是 NxN 如何构建具有特定值的矩阵。
我正在尝试下一个代码:
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];
我有下一个问题,知道矩阵的大小是 NxN 如何构建具有特定值的矩阵。
我正在尝试下一个代码:
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];