function f = pi_rnd(nS,n,muX,sigmaX) % n: 数据维度 % nS: 样本个数 % muX: 均值向量 % sigmaX: 标准差向量 % 类似于蒙特卡罗 生成样本 f = @generate; function x = generate() x = zeros(nS,n); for k = 1:n x(:,k) = normrnd(muX(k),sigmaX(k),nS,1); end end end,转变为@()的函数句柄
时间: 2024-03-14 20:45:40 浏览: 85
CaiShuZi.rar_M?n_caishuzi_猜数字
将函数转换成函数句柄的代码如下:
```matlab
nS = 1000;
n = 2;
muX = [1, 2];
sigmaX = [0.5, 1];
f = @( ) generate(nS, n, muX, sigmaX);
samples = f(); % 生成样本
scatter(samples(:,1), samples(:,2)); % 绘制散点图
xlabel('x');
ylabel('y');
title('Generated samples');
```
这里我们使用了匿名函数的方式将 `generate` 函数转换成函数句柄,并指定了不需要输入参数。然后,我们通过调用 `f()` 生成样本,并使用 `scatter` 函数绘制了生成的样本的散点图。
阅读全文