matlab稀疏矩阵合并

来源:百度知道 编辑:UC知道 时间:2024/06/16 16:06:33
A=[LB C 0 0 0 0 0 0 0;
C LB C 0 0 0 0 0 0;
0 C LB C 0 0 0 0 0;
0 0 C LB C 0 0 0 0;
0 0 0 C LB C 0 0 0;
0 0 0 0 C LB C 0 0;
0 0 0 0 0 C LB C 0;
0 0 0 0 0 0 C LB C;
0 0 0 0 0 0 0 C LB]
A是个81*81的矩阵,LB和C均为9*9的矩阵,这个程序怎么编啊

clear
LB=ones(9,9);
C=0.5.*ones(9,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);
else
A(i,j)=0;
end
end
end
A

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转换为稀疏矩阵格式,就再加一句A=sparse(A);

收藏该问题