mathematica到matlab的代码——table命令

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

我从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
我有两个问题:

  • 在mathematica中,tx:=表示每次使用变量tx时都会对其进行评估。 如何在matlab中实现这一点
  • 我的代码中有一些错误,因为当它给我绘图时,它给了我一条直线,但它应该给很多点

  • 我相信这就是你想要的:

    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您想要什么)