www.pudn.com > Algorithm.rar > iclass.m, change:2007-11-24,size:686b


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