MATLAB练习例子十二(疏矩阵)
返回
》 load west0479
》 A = west0479;
》 nnz(A)
ans =
1887
》 nnz(lu(A))
ans =
16777
》 nnz(luinc(A,1e-6))
ans =
10311
》 nnz(luinc(A,'0'))
ans =
1886
》
1 1 11
1 3 13
1 5 15
2 2 22
2 4 24
2 5 25
3 1 31
3 3 33
3 5 35
4 1 41
4 3 43
4 5 45
5 1 51
5 3 53
5 5 55
》 load T.dat
》 S = spconvert(T)
S =
(1,1) 11
(3,1) 31
(4,1) 41
(5,1) 51
(2,2) 22
(1,3) 13
(3,3) 33
(4,3) 43
(5,3) 53
(2,4) 24
(1,5) 15
(2,5) 25
(3,5) 35
(4,5) 45
(5,5) 55
》 load west0479
》 whos
Name Size Bytes Class
S 5x5 204 sparse array
T 15x3 360 double array
ans 1887x1 15096 double array
west0479 479x479 24564 sparse array
Grand total is 3834 elements using 40224 bytes
Generating a Second Difference Operator
》 D = sparse(1:n,1:n,-2*ones(1,n),n,n);
??? 'n' は未定義の関数、または変数です.
》 n = 5;
》 D = sparse(1:n,1:n,-2*ones(1,n),n,n);
》 E = sparse(2:n,1:n-1,ones(1,n-1),n,n);
》 S = E + D + E'
S =
(1,1) -2
(2,1) 1
(1,2) 1
(2,2) -2
(3,2) 1
(2,3) 1
(3,3) -2
(4,3) 1
(3,4) 1
(4,4) -2
(5,4) 1
(4,5) 1
(5,5) -2
》 F = full(S)
F =
-2 1 0 0 0
1 -2 1 0 0
0 1 -2 1 0
0 0 1 -2 1
0 0 0 1 -2
》
Creating sparse matrices from their diagonal elements
》 B = [ 41 11 0
52 22 0
63 33 13
74 44 24];
》 d = [ -3
0
2];
》 A = spdiags(B,d,7,4)
A =
(1,1) 11
(4,1) 41
(2,2) 22
(5,2) 52
(1,3) 13
(3,3) 33
(6,3) 63
(2,4) 24
(4,4) 44
(7,4) 74
》 full(A)
ans =
11 0 13 0
0 22 0 24
0 0 33 0
41 0 0 44
0 52 0 0
0 0 63 0
0 0 0 74
》 A = [ 0 0 0 5
0 2 0 0
1 3 0 0
0 0 4 0];
》 S = sparse(A)
S =
(3,1) 1
(2,2) 2
(3,2) 3
(4,3) 4
(1,4) 5
直接生成sparse matrices
》 S = sparse([ 3 2 3 4 1],[1 2 2 3 4],[1 2 3 4 5],4,4)
S =
(3,1) 1
(2,2) 2
(3,2) 3
(4,3) 4
(1,4) 5
collatzplot(500)
》 P = [1 3 4 2 5]
P =
1 3 4 2 5
》 I = eye(5,5);
》 P = I(p,:);
??? 'p' は未定義の関数、または変数です.
》 P = I(P,:);
》 e = ones(4,1);
》 S diag(11:11:55) + diag(e,1) + diag(e-1)
??? S diag
|
演算子、カンマ、またはセミコロンが見つかりません
》 S = diag(11:11:55) + diag(e,1) + diag(e-1)
??? エラー: ==> +
行列の次元は同じである必要があります.
》 S = diag(11:11:55) + diag(e,1) + diag(e,-1)
S =
11 1 0 0 0
1 22 1 0 0
0 1 33 1 0
0 0 1 44 1
0 0 0 1 55
》 S(p,:)
??? 'p' は未定義の関数、または変数です.
》 S(P,:)
??? 行列のインデックスが負、またはゼロです ロジカルインデックスの変更については
リリースノートを参照してください.
》 P*S
ans =
11 1 0 0 0
0 1 33 1 0
0 0 1 44 1
1 22 1 0 0
0 0 0 1 55
》 S(:,P)
??? 行列のインデックスが負、またはゼロです ロジカルインデックスの変更については
リリースノートを参照してください.
》 S*P'
ans =
11 0 0 1 0
1 1 0 22 0
0 33 1 1 0
0 1 44 0 1
0 0 1 0 55
返回