📄 mat_mat_multiply.m
字号:
function mat_mat_multiply(filename_1,filename_2,filename_out)[n1,nalloc1,val1,col1,link1,root1,free1]=read_1(filename_1);[n2,nalloc2,val2,col2,link2,root2,free2]=read_1(filename_2);%-----------------------------------------------------%======================================k=1;t=1;i=1;j=1;valM=0; val_out=[]; col_out=[]; root_out=1;for i=1:n1 for j=1:n1 [vl,vic]=linii_1(i,n1,nalloc1,val1,col1,link1); % vl(i)=elem nenule de pe linia i,respectiv vic indice elementelor(coloana) [vc,vil]=coloane(j,nalloc2,val2,col2,link2); % vc(i)=elem nenule de pe coloana i,respectiv vil indice elementelor(linie) k=1; t=1; for k=1:length(vl) %parcurge linie cu linie for t=1:length(vc) %parcurge coloana cu coloana if(vic(k) == vil(t)) %daca exista elem pe linie corespunzator cu elem pe coloana => inmulteste valM=valM+vl(k)*vc(t); endif endfor endfor if (valM ~= 0) val_out=[val_out,valM]; %vector ce contine elem nenule din matricea rezultata col_out=[col_out,j]; %vect ce comtine ca elem indicii coloanelor matricii rezultate endif valM=0; endfor root_out=[root_out,length(val_out)+1];endforn_out=n1;nalloc_out=length(val_out);val_out;col_out;root_out=root_out(1:length(root_out)-1);link_out=[2:length(val_out)];for i=2:length(root_out) link_out(root_out(i)-1)=-1;endforlink_out=[link_out,-1];free_out=free1; %========================<write in matrix_out>==================== fis=fopen(filename_out,'w') ; fprintf(fis,'%d\t', n_out); fprintf(fis,'%d', nalloc_out); fprintf(fis,"\n"); fprintf(fis,'%2.2f\t', val_out);fprintf(fis,"\n"); fprintf(fis,'%2.2f\t', col_out);fprintf(fis,"\n"); fprintf(fis,'%2.2f\t', link_out); fprintf(fis,"\n"); fprintf(fis,'%2.2f\t', root_out);fprintf(fis,"\n"); fprintf(fis,'%d', free_out); fclose(fis);%================================================================endfunction
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -