随机数生成与矩阵的每个元素进行比较,并通过matlab中的相应矩阵给出输出

时间:2016-06-23 17:26:49

标签: matlab if-statement random-sample

我有两个矩阵,第一个具有概率,第二个具有与每个概率对应的功率值,并且都有1行和100列。现在我想在0-1之间生成10000个随机数,与概率进行比较,如果满足一定条件,则应给出相应功率矩阵的输出。我已经编写了代码但是收到错误"矩阵维度必须同意"。任何让我知道我在这里犯的错误。

d

当pra是概率时,pwa就是力量。我想检查随机数,即a是否小于pra的第一个元素,它应该给出pwa的第一个元素的输出。如果没有,它应该检查pra的第二个元素,直到第100个元素。此程序应重复10000次。

1 个答案:

答案 0 :(得分:0)

这里有几个问题:

for q=1:1:99 praq=pr(1:1:99); pwaq=pw(1:1:99); end

这个循环什么都不做,你一遍又一遍地将相同的值重新分配给praq和pwaq。

if a<praq

此语句仅在apraq为标量时有效,但a为长度为10,000的向量,praq为长度为99的向量。

您需要执行类似

的操作

for rand_idx = 1:length(a) if a(rand_idx) < praq(<something>) ... end

但是,为了实现您的目标,我建议不要使用if x < y来查看findisempty函数。