![]() |
从Mathematica到Matlab的代码-表命令
我有来自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 我有两个问题: [LIST=1][*]在mathematica中,tx [B]:=[/B]表示每次使用变量tx都会对其求值。如何在Matlab中完成此操作?[*]我的代码中有一个或多个错误,因为当它给我绘图时,它给了我一条直线,但它应该给出很多点。[/LIST] [B]回答:[/B] 我相信这就是您想要的: 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}] 。 [url=https://stackoverflow.com/questions/4979428]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 04:49。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.