关于权重随机取数

2019-07-17 14:52发布

ti, simsun, sans-serif">一个矩阵,其中的数的范围是:0-4随机取一个数,取这个数的概率与元素值正比即为 P=(元素大小)/(矩阵中元素之和)实际上取出的数都是不为0的。
应该怎么做呢?多谢各位大侠!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
纯粹
1楼-- · 2019-07-18 13:24
望大侠明示.
因为实际上是一个很大的矩阵,所以同一个元素值在不同的位置出现了很多次
爱吃果冻
2楼-- · 2019-07-18 16:49
clear,clc
Mat = [0,1;2,3];
v = Mat(:).';
r = randsrc(1,1,[v;v/sum(v)]);%被取出来的随机数
[i,j] = find(Mat==r);
如果只想获得一个位置,那么再对位置随机取一个
id = randi(length(i));
i = i(id);  %行位置
j = j(id);  %列位置
纯粹
3楼-- · 2019-07-18 18:20
 精彩回答 2  元偷偷看……
程序诗人
4楼-- · 2019-07-18 22:27
我的方法应该是对的啊!
纯粹
5楼-- · 2019-07-19 01:43
程序诗人 发表于 2012-3-29 10:21
我的方法应该是对的啊!

是啊。。。是因为我们专业用MATLAB不多,都是用到现翻书。。。所以很多我不太懂。。比如求密度函数什么。。。。。我比较菜。。。
程序诗人
6楼-- · 2019-07-19 02:01
用的我的结果就可以了啊,我只是告诉你我怎么求的!

一周热门 更多>