登录论坛

查看完整版本 : 从Mathematica到Matlab的代码-表命令


poster
2019-12-14, 20:13
我有来自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构造,该arrayfun将第一个插槽中的函数句柄应用于第二个插槽中向量的每个元素。该命令大致等效于Mathematica中的Table[tX[m],{km}] 。



更多&回答... (https://stackoverflow.com/questions/4979428)