mathematica到matlab的代码——table命令
我从mathematica获得了以下代码,并试图用matlab实现它,但我做不到:mathematica到matlab的代码——table命令,matlab,wolfram-mathematica,Matlab,Wolfram Mathematica,我从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=ze
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
我有两个问题:
我相信这就是你想要的:
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中的表[tX[m],{km}]
。我相信这就是您想要的:
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中的表[tX[m],{km}]
。。顺便说一下,您可以将sum(rand(m,1)-0.5)/m
替换为mean(rand(m,1))-0.5
Good point,若要更改为point size,请将plot命令更改为plot(1:km,dataX,'r.','MarkerSize你想要什么)
。顺便说一下,您可以将sum(rand(m,1)-0.5)/m
替换为mean(rand(m,1))-0.5
Good point,若要更改为point size,请将plot命令更改为plot(1:km,dataX,'r.','MarkerSize您想要什么)