资源简介

对二进制矩阵用高斯消元法求逆。输入二进制矩阵,输出其逆。比http://blog.sina.com.cn/s/blog_4b425443010008l6.html中方法更可靠和快速

资源截图

代码片段和文件信息

function [ out ] = inv_bin( in )
%INV_BIN Summary of this function goes here
%   Detailed explanation goes here
%   计算二进制稀疏矩阵的逆
[mn] = size(in);
if(m~=n)
   fprintf(‘m~=n\n‘);
   return ;
end
E = eye(m);
%%
%做行变换,变成下三角阵
for i = 1:m
    noneZerosIndex = find(in(:i));  %i到end行,第i列非零元
    noneZerosIndex = noneZerosIndex(find(noneZerosIndex>=i));
    if(length(noneZerosIndex)==0)  %该行为0
        randIndex = randi([i+1m]1);
        %列交换
        temp = in(:i);
        in(:i) = in(:randIndex);
        in(:randIndex) = temp;
        %E交换
        temp = E(:i);
        E(:i) = E(:randIndex);
     

评论

共有 条评论