iclass.m
来自「各种矩阵相称的算法时间比较」· M 代码 · 共 21 行
M
21 行
function C=iclass(A,B,n)
%此程序是用分治算法思想将两个规模为2^k*2^k的矩阵相乘
if n==1
C=A*B;
elseif rem(n,2)==0
C11=iclass(A(1:n/2,1:n/2),B(1:n/2,1:n/2),n/2)...
+iclass(A(1:n/2,n/2+1:end),B(n/2+1:end,1:n/2),n/2);
C12=iclass(A(1:n/2,1:n/2),B(1:n/2,n/2+1:end),n/2)...
+iclass(A(1:n/2,n/2+1:end),B(n/2+1:end,n/2+1:end),n/2);
C21=iclass(A(n/2+1:end,1:n/2),B(1:n/2,1:n/2),n/2)...
+iclass(A(n/2+1:end,n/2+1:end),B(n/2+1:end,1:n/2),n/2);
C22=iclass(A(n/2+1:end,1:n/2),B(1:n/2,n/2+1:end),n/2)...
+iclass(A(n/2+1:end,n/2+1:end),B(n/2+1:end,n/2+1:end),n/2);
C=[C11 C12;C21 C22];
else
error('Error Cycle!')
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?