二元域矩阵求逆MATLAB代码

function[out]=inv_bin(in)%INV_BINSummaryofthisfunctiongoeshere%Detailedexplanationgoeshere%计算二进制稀疏矩阵的逆[m,n]=size(in);if(m~=n)fprintf(‘m~=n\n’);return;endE=eye…

大家好,又见面了,我是你们的朋友全栈君。

function [ out ] = inv_bin( in )
%INV_BIN Summary of this function goes here
%   Detailed explanation goes here
%   计算二进制稀疏矩阵的逆
[m,n] = 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+1,m],1);
        %列交换
        temp = in(:,i);
        in(:,i) = in(:,randIndex);
        in(:,randIndex) = temp;
        %E交换
        temp = E(:,i);
        E(:,i) = E(:,randIndex);
        E(:,randIndex) = temp;
    end
    id1 = noneZerosIndex(1);
    %in交换
    temp = in(i,:);
    in(i,:) = in(id1,:);
    in(id1,:) = temp;
    %E交换
    temp = E(i,:);
    E(i,:) = E(id1,:);
    E(id1,:) = temp;
    
    noneZerosIndex = find(in(:,i));  %第i列非零元,用其中的第一行消其他行
    for cc = 1:length(noneZerosIndex)
        if(noneZerosIndex(cc)~=i)  %跳过第i行
            temp = mod(in(noneZerosIndex(cc),:)+in(i,:) , 2);
            in(noneZerosIndex(cc),:) = temp;
            temp = mod(E(noneZerosIndex(cc),:)+E(i,:) , 2);
            E(noneZerosIndex(cc),:) = temp;
        end
    end
end
out = E;
end

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129146.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月13日 下午4:00
下一篇 2022年4月13日 下午4:00


相关推荐

  • 用plsql将excel导入oracle,使用工具 plsqldev将Excel导入Oracle数据库

    用plsql将excel导入oracle,使用工具 plsqldev将Excel导入Oracle数据库使用工具 plsqldev 将 Excel 导入 Oracle 数据库 1 使用工具 plsqldev2 打开需导入的 excel 表格 单击 office 按钮 选择另存为其他格式 选择保存类型 CSV 逗号分隔 csv 单击保存 3 打开 plsqldev 在工具栏中选择 Tools 下拉菜单下的 TextImporter 进入后选择 datafromtext 标签 单击下面带有红线框的按钮打开 cs

    2025年8月1日
    10
  • 只因为你

    只因为你

    2021年8月1日
    60
  • 【计算机网络】FQDN 是什么

    【计算机网络】FQDN 是什么文章目录 FQDN 是什么 参考 FQDN 是什么 FQDN 是完全合格域名 全程域名缩写 FullyQualifi 即是域名 访问时将由 DNS 进行解析 得到 IP FQDN Hostname DomainName 当我们申请了一个域名时 就可以使用这个域名来得到 IP 但若这个域名下挂在很多主机如何 我是不是得申请很多很多域名给每个主机 不需要 域名即创建了一个域 就如命名空间 在这个命名空间下 其他主机都可以创建自己的名称 这个名称就是通过以上公式得来 举个例子 一个

    2026年3月18日
    2
  • 讨论行列式的几何意义

    讨论行列式的几何意义讨论行列式的几何意义

    2026年3月18日
    2
  • 1.23 lseek函数

    1.23 lseek函数参考:牛客网C++高薪求职项目《Linux高并发服务器开发》1.22read、write函数专属优惠链接:https://www.nowcoder.com/courses/cover/live/504?coupon=AvTPnSG

    2022年6月24日
    29
  • A股30年历史的拐点和暗示(大盘篇)

    A股30年历史的拐点和暗示(大盘篇)转A股30年,历史的拐点和暗示(大盘篇)来源:主动型量化   作者:刘帅路————————————————————————————–拓展阅读:1.集合竞价选股2.七种量化选股模型…

    2022年6月23日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号