?? qinv_gf2.m
字號:
function [invA,stopcol]=inv_GF2(A);
%[invA,stopcol]=inv_GF2(A);
[rows cols]=size(A);
if rows~=cols
error('Input matrix error: rows must equal cols!');
end
stopcol=0;
%AE為完全矩陣,如果AE為稀疏矩陣則當(dāng)AE規(guī)模較大時速度會大大減慢
AE=[full(A) eye(rows)];
%%對AE在GF(2)上進(jìn)行初等行變換,前面的rows行 x rows列形成單位矩陣
%for k=1:rows
% if AE(k,k)==0
% ind=find(AE(k+1:end,k)~=0)';
% if isempty(ind)
% invA=[];
% stopcol=k;
% return
% end
% AE(k,:)=rem(AE(k,:)+AE(k+ind(1),:),2);
% end
%
% ind=find(AE(:,k)~=0)';
% for x=ind
% if x~=k
% AE(x,:)=rem(AE(x,:)+AE(k,:),2);
% end
% end
%
%end
%
%%后面的E經(jīng)同樣的初等行變換得到的矩陣即為invA
%invA=AE(:,rows+1:end);
stopcol=AE2EA(AE);
if stopcol==0
invA=AE(:,rows+1:end);
else
invA=[];
end
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -