MATLAB: Creating multidiagonal matrix from a basic square matrix aoviding loops;diagonal matrices;finite differencemultidiagonal matrices; For a finite difference code I need to create a multidiagonal matrix from a basic square matrix A: How can I do this without using a for loop? Best Answer A = magic(3);n = 8;B = repmat({A},1,n);out = blkdiag(B{:}); Related SolutionsMATLAB: Create block diagonal matrix by slicing blocks from non-square matrix a=magic(3);n=4;A=repmat(a,n,1);B=mat2cell(A,3*ones(1,n),3);C=blkdiag(B{:}) MATLAB: Create Sparse Finite Difference Matrix without Loop 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) ; Related QuestionSymmetric Kronecker product in MatlabCreation of a block-diagonal sparse matrixHow to operate on 2d matrices in a 3D arrayHow to replicate an array diagonally for a given number of timesHow to create n*n upper triangular matrix with conditions? (image attached)How to convert row and column vectors of a symmetric matrix to zero if diagonal value is zero
Best Answer