你给的例子中,代码和条件对应不起来.
满足你需要的代码如下:
a=5;b=2;d0=1;d=2; % 常数定义
N=10; % 要生成的随机数个数
x = 1:1:5;
for j=1:length(x)
sigma = d0 + d * x(j); % 随机数方差
ex = normrnd(0, sigma, N, 1); % 随机数
Y(:,j)= a + b * x(j) + ex;
end
disp(Y) % 显示结果
如有问题可继续追问,
再问: 我help了一下normrnd函数,第一个参数说是参数的均值,这里写0应该是没错,第二个是标准差,我看你定义的标准差是d0+d*x,这里不写sigma^2的原因是相当于开方了是吗?还有后面两个参数,这里您写N,1,意思是生成了N*1矩阵吗? 还有例子模型ex=d0+d1x+d2x^2,三个参数分别为0.1,10,0.3,但是代码里却完全找不到对应参数,是由于代码和条件不对应?
再答: 你的理解没错: 1、不写sigma^2的原因是相当于开方; 2、normrnd函数后面两个参数写N,1,意思是生成了N*1矩阵; 3、我的理解是代码和条件不对应,因为有关的参数根本对不上号,即使是可行的代码(这种可能性极小),也是一种非常糟糕的实现方式,没必要仔细去读了。