Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我有来自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 我有两个问题:
回答: 我相信这就是您想要的: 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}] 。 更多&回答... |
![]() |
![]() |