我的问题是关于 slicesample
在Matlab中。它分为2部分:
1)切片采样的结构: 假设这是密度函数
function den=f(param)
den=mvnpdf(param);
end
这是我对主要功能的尝试
N = 3;
param = slicesample([1 2 3 4 5 6 7],N,'pdf',f);
它告诉我Error using f (line 2) Not enough input arguments.
错误在哪里?
2) 3
param
中包含的点是3
随机抽取param
来自f
?
最佳答案
您需要在 f
之前使用 @
,因此命令应该是
param = slicesample([1 2 3 4 5 6 7], N, 'pdf', @f);
slicesample
的文档对此进行了详细说明.
slicesample
的结果是来自 f
为 [1 2 3 4 5 6 7] 中每个初始样本给出的分布的 3 个随机样本
。所以我一次运行的输出是
param = slicesample([1 2 3 4 5 6 7], N, 'pdf', @f)
param =
0.9519 4.5174 2.8350 2.0869 4.3373 6.0897 7.0216
2.5261 4.8106 3.1633 3.1249 1.8355 5.4323 6.1954
2.0635 5.7164 2.1639 2.6342 1.6730 5.5212 6.0935
另一个是
>> param = slicesample([1 2 3 4 5 6 7], N, 'pdf', @f)
param =
0.2897 3.2341 2.9016 4.3718 3.7444 4.9612 7.3525
0.3242 4.7909 1.4022 3.0182 5.1264 2.6466 6.5270
1.6639 5.5771 0.4790 3.3013 2.6992 2.3913 6.5019
关于matlab - 关于 Matlab 中的 slicesample 有疑问吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32764690/