%% 稀疏矩阵不能单对角线逐个定义,这样会覆盖之前的结果.
%% 另,这个性质对diag函数同样适用,且diag只能有A = diag(v_0,k_0)的形式,
% 不过diag函数不要求v_0必须是列向量,但,v_0的长度必须与k_0一致.
% 如果必须使用diag函数以生成多个对角线,可以使用单个对角线生成再相加的方法.
% 如:A = diag(v_0,k_0)+diag(v_1,k_1)+·+diag(v_m,k_m).
v_1 = ones(8,1);
v_2 = [0 0 0 0 1 4 6 7]';
v_3 = [0 0 2 5 7 3 4 7]';
v_4 = [9 2 3 7 0 0 0 0]';
v_5 = [4 5 6 2 9 0 0 0]';
v=[v_1 v_2 v_3 v_4 v_5];
A = spdiags(v,[0,4,6,-4,-3],8,8); %以v的每一列为模板生成稀疏矩阵.
B = spdiags([v_1;2;2]*2,0,10,10);
C = A*B(2:9,2:9);D = A/B(2:9,2:9); %稀疏矩阵之间可以直接乘除,且结果仍未稀疏矩阵.
E = B; %可以将一个变量直接赋值称已有的稀疏矩阵.
E(1:8,1:8) = A; %可以对稀疏矩阵按满矩阵的方式分块处理.
A=full(A) %将稀疏矩阵转换成满矩阵并输出,但如果矩阵太大,会造成内存满溢,报错.
B=full(B)
C=full(C)
D=full(D)
E=full(E)
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- bangwoyixia.com 版权所有 湘ICP备2023022004号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务