我有来自mathematica的以下代码,并试图用matlab做,但我不能这样做:
tX := Sum[Random[] - 0.5, {m}]/m
m=1;
km=10m;
dataX = Table[tX, {km}]
fig2 = ListPlot[dataX, PlotStyle -> {RGBColor[1, 0, 0], PointSize[0.015]}]
我这样做了:
tx=sum(rand(1,m)-0.5) ./ m;
m=100;
km=100*m;
datax=zeros(tx,1);
for i=1:km
datax(i,1)=[tx];
end
我有两个问题:
答案 0 :(得分:1)
我相信这就是你想要的:
m = 1;
km = 10*m;
tX = @(m) sum( rand(m,1) - 0.5 )/ m;
dataX = arrayfun(tX, m * ones(km,1));
plot(1:km, dataX, 'r.')
要生成tX
的实例,只需输入tX(m)
,其中m
是您想要的值。
解释其中一些:
tX
是一个函数句柄,相当于Mathematica中的tX[m_] := Sum[RandomReal[],{m}]/m
。
dataX由arrayfun
构造,它将第一个槽中的函数句柄应用于第二个槽中向量中的每个元素。该命令大致相当于Mathematica中的Table[tX[m],{km}]
。