octave:2> A=[1,0,0,0;0,2,3,0;4,0,5,6;0,0,0,7] A = 1 0 0 0 0 2 3 0 4 0 5 6 0 0 0 7 octave:3> sparse(A) ans = Compressed Column Sparse (rows = 4, cols = 4, nnz = 7) (1, 1) -> 1 (3, 1) -> 4 (2, 2) -> 2 (2, 3) -> 3 (3, 3) -> 5 (3, 4) -> 6 (4, 4) -> 7 octave:4> B=sparse(A) B = Compressed Column Sparse (rows = 4, cols = 4, nnz = 7) (1, 1) -> 1 (3, 1) -> 4 (2, 2) -> 2 (2, 3) -> 3 (3, 3) -> 5 (3, 4) -> 6 (4, 4) -> 7 octave:5> B(:,1) ans = Compressed Column Sparse (rows = 4, cols = 1, nnz = 2) (1, 1) -> 1 (3, 1) -> 4 octave:6> full(B) ans = 1 0 0 0 0 2 3 0 4 0 5 6 0 0 0 7 octave:7> speye(3) ans = Compressed Column Sparse (rows = 3, cols = 3, nnz = 3) (1, 1) -> 1 (2, 2) -> 1 (3, 3) -> 1 octave:8> v1=[1,2,3,4] v1 = 1 2 3 4 octave:9> v1=[1,2,3,4]' v1 = 1 2 3 4 octave:10> v2=[10,20,30,40]' v2 = 10 20 30 40 octave:11> spdiags([v1,v2],[0,1],4,4) ans = Compressed Column Sparse (rows = 4, cols = 4, nnz = 7) (1, 1) -> 1 (1, 2) -> 20 (2, 2) -> 2 (2, 3) -> 30 (3, 3) -> 3 (3, 4) -> 40 (4, 4) -> 4 octave:12> full(spdiags([v1,v2],[0,1],4,4)) ans = 1 20 0 0 0 2 30 0 0 0 3 40 0 0 0 4 octave:13> full(spdiags([v1,v2],[0,-1],4,4)) ans = 1 0 0 0 10 2 0 0 0 20 3 0 0 0 30 4 octave:14> spdiags([v1,v2],[0,-1],4,4) ans = Compressed Column Sparse (rows = 4, cols = 4, nnz = 7) (1, 1) -> 1 (2, 1) -> 10 (2, 2) -> 2 (3, 2) -> 20 (3, 3) -> 3 (4, 3) -> 30 (4, 4) -> 4 octave:15> C=spdiags([v1,v2],[0,-1],4,4) C = Compressed Column Sparse (rows = 4, cols = 4, nnz = 7) (1, 1) -> 1 (2, 1) -> 10 (2, 2) -> 2 (3, 2) -> 20 (3, 3) -> 3 (4, 3) -> 30 (4, 4) -> 4 octave:16> C(4,4)=-6 C = Compressed Column Sparse (rows = 4, cols = 4, nnz = 7) (1, 1) -> 1 (2, 1) -> 10 (2, 2) -> 2 (3, 2) -> 20 (3, 3) -> 3 (4, 3) -> 30 (4, 4) -> -6 octave:17> v1 v1 = 1 2 3 4 octave:18> C*v1 ans = 1 14 49 66 octave:19> full(C)*v1 ans = 1 14 49 66 octave:20> full(C) ans = 1 0 0 0 10 2 0 0 0 20 3 0 0 0 30 -6 octave:21> C(1,2)=1 C = Compressed Column Sparse (rows = 4, cols = 4, nnz = 8) (1, 1) -> 1 (2, 1) -> 10 (1, 2) -> 1 (2, 2) -> 2 (3, 2) -> 20 (3, 3) -> 3 (4, 3) -> 30 (4, 4) -> -6 octave:22> C(1,3)=1 C = Compressed Column Sparse (rows = 4, cols = 4, nnz = 9) (1, 1) -> 1 (2, 1) -> 10 (1, 2) -> 1 (2, 2) -> 2 (3, 2) -> 20 (1, 3) -> 1 (3, 3) -> 3 (4, 3) -> 30 (4, 4) -> -6 octave:23> C(1,4)=1 C = Compressed Column Sparse (rows = 4, cols = 4, nnz = 10) (1, 1) -> 1 (2, 1) -> 10 (1, 2) -> 1 (2, 2) -> 2 (3, 2) -> 20 (1, 3) -> 1 (3, 3) -> 3 (4, 3) -> 30 (1, 4) -> 1 (4, 4) -> -6 octave:24> full(C) ans = 1 1 1 1 10 2 0 0 0 20 3 0 0 0 30 -6 octave:25> C(2,3:4)=1 C = Compressed Column Sparse (rows = 4, cols = 4, nnz = 12) (1, 1) -> 1 (2, 1) -> 10 (1, 2) -> 1 (2, 2) -> 2 (3, 2) -> 20 (1, 3) -> 1 (2, 3) -> 1 (3, 3) -> 3 (4, 3) -> 30 (1, 4) -> 1 (2, 4) -> 1 (4, 4) -> -6 octave:26> full(C) ans = 1 1 1 1 10 2 1 1 0 20 3 0 0 0 30 -6 octave:27> C(3,1)=1 C = Compressed Column Sparse (rows = 4, cols = 4, nnz = 13) (1, 1) -> 1 (2, 1) -> 10 (3, 1) -> 1 (1, 2) -> 1 (2, 2) -> 2 (3, 2) -> 20 (1, 3) -> 1 (2, 3) -> 1 (3, 3) -> 3 (4, 3) -> 30 (1, 4) -> 1 (2, 4) -> 1 (4, 4) -> -6 octave:28> C(3,4)=1 C = Compressed Column Sparse (rows = 4, cols = 4, nnz = 14) (1, 1) -> 1 (2, 1) -> 10 (3, 1) -> 1 (1, 2) -> 1 (2, 2) -> 2 (3, 2) -> 20 (1, 3) -> 1 (2, 3) -> 1 (3, 3) -> 3 (4, 3) -> 30 (1, 4) -> 1 (2, 4) -> 1 (3, 4) -> 1 (4, 4) -> -6 octave:29> full(C) ans = 1 1 1 1 10 2 1 1 1 20 3 1 0 0 30 -6 octave:30> C(4,1:2)=1 C = Compressed Column Sparse (rows = 4, cols = 4, nnz = 16) (1, 1) -> 1 (2, 1) -> 10 (3, 1) -> 1 (4, 1) -> 1 (1, 2) -> 1 (2, 2) -> 2 (3, 2) -> 20 (4, 2) -> 1 (1, 3) -> 1 (2, 3) -> 1 (3, 3) -> 3 (4, 3) -> 30 (1, 4) -> 1 (2, 4) -> 1 (3, 4) -> 1 (4, 4) -> -6 octave:31> full(C) ans = 1 1 1 1 10 2 1 1 1 20 3 1 1 1 30 -6 octave:32> A=rand(3) A = 0.18134 0.48819 0.12145 0.71904 0.55304 0.92413 0.73700 0.34003 0.87247 octave:33> [V,D]=eig(A) V = 0.29742 + 0.00000i 0.75515 + 0.00000i 0.75515 - 0.00000i 0.72857 + 0.00000i -0.16536 + 0.28179i -0.16536 - 0.28179i 0.61703 + 0.00000i -0.53239 - 0.19891i -0.53239 + 0.19891i D = 1.62921 + 0.00000i 0.00000 + 0.00000i 0.00000 + 0.00000i 0.00000 + 0.00000i -0.01118 + 0.15018i 0.00000 + 0.00000i 0.00000 + 0.00000i 0.00000 + 0.00000i -0.01118 - 0.15018i octave:34> E=expm(A); octave:35> exp(D) ans = 5.09987 + 0.00000i 1.00000 + 0.00000i 1.00000 + 0.00000i 1.00000 + 0.00000i 0.97775 + 0.14795i 1.00000 + 0.00000i 1.00000 + 0.00000i 1.00000 + 0.00000i 0.97775 - 0.14795i octave:36> diag(exp(diag(D))) ans = 5.09987 + 0.00000i 0.00000 + 0.00000i 0.00000 + 0.00000i 0.00000 + 0.00000i 0.97775 + 0.14795i 0.00000 + 0.00000i 0.00000 + 0.00000i 0.00000 + 0.00000i 0.97775 - 0.14795i octave:37> V/(V*diag(exp(diag(D)))) ans = 0.962368 - 0.000000i -0.363343 + 0.000000i 0.059666 - 0.000000i -0.341114 + 0.000000i 0.746193 - 0.000000i -0.485132 + 0.000000i -0.417895 - 0.000000i -0.075999 - 0.000000i 0.487252 + 0.000000i octave:38> E E = 1.62934 0.86029 0.65703 1.83994 2.46285 2.22683 1.68440 1.12198 2.96316 octave:39> (V*diag(exp(diag(D))))/V ans = 1.62934 - 0.00000i 0.86029 - 0.00000i 0.65703 - 0.00000i 1.83994 - 0.00000i 2.46285 + 0.00000i 2.22683 + 0.00000i 1.68440 + 0.00000i 1.12198 - 0.00000i 2.96316 - 0.00000i octave:40> diary off