MATLAB实例:对称双随机矩阵

作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/

双随机矩阵(doubly stochastic matrix):元素属于[0,1],行和为1,且列和为1。

MATLAB程序

function A=doubly_stochastic(n)
%产生 n 阶双随机矩阵 A
A(1,1)=rand;
for i=2:n-1
d=1-sum(A(1,1:i-1));
A(1,i)=d*rand;
end
for i=2:n-1
d=1-sum(A(1:i-1,1));
A(i,1)=d*rand;
end
for i=2:n-1
for j=2:n-1
d1=1-sum(A(i,1:j-1));
d2=1-sum(A(1:i-1,j));
d=min([d1 d2]);
A(i,j)=d*rand;
end
end
for i=1:n-1
A(n,i)=1-sum(A(1:n-1,i));
end
for i=1:n
A(i,n)=1-sum(A(i,1:n-1));
end
if A(n,n)<0
A=1/n*ones(n);
end
%对称化A
A=(A'+A)/2;

注:程序最后一行如果去掉,则为双随机矩阵,加上最后一行,保证矩阵为对称阵。

结果

>> A=doubly_stochastic(5)

A =

    0.3260    0.2105    0.3017    0.1032    0.0585
0.2105 0.1132 0.4114 0.1341 0.1308
0.3017 0.4114 0.0023 0.1947 0.0899
0.1032 0.1341 0.1947 0.3641 0.2039
0.0585 0.1308 0.0899 0.2039 0.5169 >> sum(A, 1) ans = 1 1 1 1 1 >> sum(A, 2) ans = 1
1
1
1
1 >> A'==A ans = 5×5 logical 数组 1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1

参考

如何用Matlab产生双随机矩阵

MATLAB实例:对称双随机矩阵的更多相关文章

  1. Matlab plotyy画双纵坐标图实例

    Matlab plotyy画双纵坐标图实例 x = 0:0.01:20;y1 = 200*exp(-0.05*x).*sin(x);y2 = 0.8*exp(-0.5*x).*sin(10*x);[A ...

  2. Matlab实现单(双)极性(不)归零码

    Matlab实现单(双)极性(不)归零码 内容大纲 Matlab实现单极性不归零波形(NRZ),0 1 幅值 Matlab实现单极性归零波形(RZ),0 1 幅值 Matlab实现双极性不归零波形,- ...

  3. MATLAB实例:聚类初始化方法与数据归一化方法

    MATLAB实例:聚类初始化方法与数据归一化方法 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. 聚类初始化方法:init_methods.m f ...

  4. MATLAB实例:新建文件夹,保存.mat文件并保存数据到.txt文件中

    MATLAB实例:新建文件夹,保存.mat文件并保存数据到.txt文件中 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 用MATLAB实现:指定路径下 ...

  5. MATLAB实例:求相关系数、绘制热图并找到强相关对

    MATLAB实例:求相关系数.绘制热图并找到强相关对 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 用MATLAB编程,求给定数据不同维度之间的相关系 ...

  6. MATLAB实例:散点密度图

    MATLAB实例:散点密度图 作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ MATLAB绘制用颜色表示数据密度的散点图 数据来源:MATLAB中“fit ...

  7. MATLAB实例:绘制条形图

    MATLAB实例:绘制条形图 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 用MATLAB绘制条形图,自定义条形图的颜色.图例位置.横坐标名称.显示条 ...

  8. MATLAB实例:绘制折线图

    MATLAB实例:绘制折线图 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 条形图的绘制见:MATLAB实例:绘制条形图 用MATLAB将几组不同的数 ...

  9. MATLAB实例:非线性曲线拟合

    MATLAB实例:非线性曲线拟合 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 用最小二乘法拟合非线性曲线,给出两种方法:(1)指定非线性函数,(2) ...

随机推荐

  1. Unicode、UTF-8、Big Endian、Little Endian、GBK、UCS-2

    一.Unicode.UCS.GBK 1.开始计算机只在美国用.八位的字节一共可以组合出256(2的8次方)种不同的状态.把这些0×20以下的字节状态称为”控制码”.他们又把所有的空 格.标点符号.数字 ...

  2. MySQL Aborted_clients和 Aborted_connects状态变量详解

    Aborted_clients和 Aborted_connects状态变量详解   By:授客 QQ:1033553122 状态变量定义 Aborted_clients 因客户端消亡时未恰当的关闭连接 ...

  3. UILable中划线和下划线

    //中划线 NSDictionary *attribtDic = @{NSStrikethroughStyleAttributeName: [NSNumber numberWithInteger:NS ...

  4. Git问题汇总

    1.fatal: refusing to merge unrelated histories $git pull origin master --allow-unrelated-histories 2 ...

  5. 坚果云+typora(个人十分喜欢的一个记笔记方式)

    1.名称 坚果云 markdown--->typora 2.喜欢原因 2.1 坚果云 坚果云全平台覆盖,支持Windows.Mac.Linux.iOS(iPad及iPhone).Android. ...

  6. LeetCode刷题191127

    数据库: 1179 部门表 Department: +---------------+---------+| Column Name | Type |+---------------+-------- ...

  7. 通过U盘在物理机安装CentOS出现Timeout的问题

    错误信息:centos dracut timeout..... 解决方案: 在进入install页面是,按e,启动编辑.要保证Label与U盘的卷标保持一致即可.

  8. SVN安装及其汉化

    1.百度搜索SVN,点击官网进去 2.点击download进入下载页面,选择合适的安装包 3.当前页面往下拉,看到汉化包下载页面,要注意版本 4.2个下载完,先安装软件在安装汉化包,要注意软件和汉化包 ...

  9. 5 其他命令-学习目标以及find命令的基本使用

    .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...

  10. cordova+vue混合式开发App

    应要求第一次使用cordova打包了一下vue写的app项目,期间遇到了不少问题,整理一下流程并记录一下常见问题吧.        cordova打包项目需要的环境配置啥的就不具体讲啦,百度一下很多教 ...