博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二元域矩阵求逆MATLAB代码
阅读量:4101 次
发布时间:2019-05-25

本文共 1158 字,大约阅读时间需要 3 分钟。

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 ;endE = 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    endendout = E;end

转载地址:http://djwsi.baihongyu.com/

你可能感兴趣的文章
C++总结8——shared_ptr和weak_ptr智能指针
查看>>
c++写时拷贝1
查看>>
C++ 写时拷贝 2
查看>>
Linux网络编程---I/O复用模型之poll
查看>>
Java NIO详解
查看>>
单列模式-编写类ConfigManager读取属性文件
查看>>
java中float和double的区别
查看>>
Statement与PreparedStatement区别
查看>>
Tomcat配置数据源步骤以及使用JNDI
查看>>
before start of result set 是什么错误
查看>>
(正则表达式)表单验证
查看>>
在JS中 onclick="save();return false;"return false是
查看>>
JSTL 常用标签总结
查看>>
内容里面带标签,在HTML显示问题,JSTL
查看>>
VS编译器运行后闪退,处理方法
查看>>
用div+css做下拉菜单,当鼠标移向2级菜单时,为什么1级菜单的a:hover背景色就不管用了?
查看>>
idea 有时提示找不到类或者符号
查看>>
JS遍历的多种方式
查看>>
ng-class的几种用法
查看>>
node入门demo-Ajax让前端angularjs/jquery与后台node.js交互,技术支持:mysql+html+angularjs/jquery
查看>>