【问题标题】:Probability density function with large mu and sigma values?具有大 mu 和 sigma 值的概率密度函数?
【发布时间】:2016-08-15 09:46:05
【问题描述】:

我正在使用以下功能:

 pd=makedist('normal',mu,sigma);
 y = pdf(pd,speed)

musigma 的大小为 50x1,X 的大小为 3000x1。一次传递一个 mu、sigma 和 speed 的值,我得到了输出。但是我怎样才能同时传递所有这些值,以便最后得到一个包含所有 y 值的数据集?

我想我必须使用for 循环,但我不确定该怎么做。

【问题讨论】:

  • 哦,对不起,我没有意识到我这样做了(我是这个堆栈流的新手).....请再次给我这个选项。我会接受的。

标签: arrays matlab sorting normal-distribution


【解决方案1】:
mu = rand(50,1);
sigma = rand(50,1);
speed = rand(3000,1);
y = zeros(numel(mu),numel(speed));

for k = 1:numel(mu)
    pd = makedist('normal',mu(k),sigma(k));
    y(k,:) = pdf(pd,speed);  %store in for loop
end

通过初始化输出,可以轻松地进行双循环来计算所有组件。您的输出现在索引为 y(mu/sigma,speed),因此第一个索引对应于 mu/sigma 对,第二个索引对应于使用的 speed 条目。

【讨论】:

  • 感谢您的帮助,但在 matlab 中运行此代码示例时,我收到以下错误“从 prob.NormalDistribution 转换为 double 时发生以下错误:从 prob.NormalDistribution 转换为 double 不是可能的。'任何解决方案..??
  • 哦,这意味着您实际上无法通过这种方式获得pd。你想拥有pd,还是只拥有y 值?只需 y 值就容易多了。我改成代码不保存pd
  • 我终于需要 y 值,因为 y 值会给我输出。但是如何在没有 pd 值的情况下获得 y 值,因为您可以看到两者都是相关的......??
  • 我确实使用了pd 值,如您所见,我在外循环中计算它们。但是我不保存它们,因为它是一种麻烦的文件类型。请先检查代码,因为它确实使用了一切。
  • @Sujal 你不会遍历mu,而是遍历1:numel(mu),这意味着“1 到mu 中的元素数量,与mu 包含的内容无关。 musigma都是一样大小的,所以写法没有区别1:numel(sigma)
猜你喜欢
  • 2019-07-04
  • 2012-11-21
  • 2021-11-14
  • 2014-09-14
  • 1970-01-01
  • 1970-01-01
  • 2016-06-07
  • 2015-06-18
  • 2017-09-20
相关资源
最近更新 更多