您好,欢迎来到伴沃教育。
搜索
您的当前位置:首页matlab关于稀疏矩阵与diag函数的一些

matlab关于稀疏矩阵与diag函数的一些

来源:伴沃教育


%% 稀疏矩阵不能单对角线逐个定义,这样会覆盖之前的结果.

%% 另,这个性质对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

本站由北京市万商天勤律师事务所王兴未律师提供法律服务