-
clearlb=ones(9,9);
c=,9);% 自定義 LB C 矩陣。
for i=1:81
for j=1:81
p=9-max(1:(i-1)/9+1)*9+i;% 除以 9 的餘數。
q=9-max(1:(j-1)/9+1)*9+j;
m=max(1:(i-1)/9+1);%lb c 矩陣所在的行。
n=max(1:(j-1)/9+1);
if m==n
a(i,j)=lb(p,q);
elseif (n==m+1)+(n==m-1)a(i,j)=c(p,q);
elsea(i,j)=0;
endendenda
-
lb=ones(9)*4;c=ones(9)*8;這裡的 % 隨機生成 lb 和 c
a=kron(eye(9),lb)+kron(diag(ones(1,8),1)+diag(ones(1,8),-1),c);%這是你想要的
如果要將 a 轉換為稀疏矩陣格式,請新增 a=sparse(a);
-
稀疏矩陣是非零元素很少的矩陣,稱為稀疏矩陣,該屬性提供了矩陣儲存空間和計算時間的優勢。
我們可以使用 MATLAB 函式 sparse 將其轉換為稀疏矩陣,該函式的語法為:
s=sparse(a)
函式 sparse() 更常見的用途是生成稀疏矩陣,語法如下:
s=vsparse(r,c,s,m,n)
其中 R 和 C 是我們希望生成的稀疏矩陣矩陣中非零元素的行和列索引向量。 引數 s 是乙個向量,其中包含與索引對 (r,c) 對應的數值,m 和 n 是結果矩陣的行和列維度。
如果你想得到完成的矩陣,你可以使用 full() 函式,函式語法:
a=full(s)
對於您的問題,要生成乙個上三角形稀疏矩陣,乙個可能的想法是首先生成乙個上三角形正態矩陣,然後對其進行稀疏處理。
a = triu(ones(4,4))
上述函式用於生成上三角矩陣,因此。
s=sparse(a)
將其轉換為稀疏矩陣。
-
a(2,2) 是大小為 1*1 的稀疏矩陣。
這與從密集矩陣中獲取元素以獲得 1*1 密集矩陣的結果相同。
不要看結果說很奇怪,但這並不影響計算。
5 矩估計法,取值為10 11 12 9 10 11 10 值為9發生1次,概率為(1 9); 值為 10,有 3 次出現的幾率 (3 9); 該值是 2 次出現的概率 (2 9); 值為 11,發生幾率為 2 (2 9); 該值為 12,出現 1 次的幾率為 (1 9)。 >>>More