당신은 Part
를 사용하여 목록의 다른 부분에 액세스하거나보다 전문적인 명령의 일부와 같은 First
, Rest
, Most
와 (당신이 필요로하는 일) Last
를 (당신이 필요 부품에 따라) 할 수 있습니다. 덧글에 언급 된 바와 같이 Histogram[Last/@F]
또는 Histogram[F[[All,-1]]]
이 정상적으로 작동합니다. 이 질문의 일부가 아니었지만
, 나는 엄청나게 그것을 속도가 빨라집니다 당신이 특정 문제에 대해 할 수있는 몇 가지를주의하고 싶습니다. 그들은 Table
명령 안에 있기 때문에 당신은 Mu
, Sigma
등 1 만 시간을 정의한다. 당신은 또한 당신이 Table
내부의 FoldList
내부에 그것을 가지고 있기 때문에, 일정한 경우에도, Mu - Sigma^2/2)*t + Sigma*Sqrt[t]
12 만 시간을 다시 계산한다. 내 컴퓨터에
:이 대안은
F = Table[(Xi = RandomVariate[NormalDistribution[], 12];
Mu = -0.00644131;
Sigma = 0.0562005;
t = 1/12; s = 0.6416;
FoldList[(#1*Exp[(Mu - Sigma^2/2)*t + Sigma*Sqrt[t]*#2]) &, s,
Xi]), {SeedRandom[2]; 10000}]; // Timing
{4.19049, Null}
입니다
열 배 빠른 다음
Table
내에서 재정의 다른있는 것들에 대한
F = Module[{Xi, beta}, With[{Mu = -0.00644131, Sigma = 0.0562005,
t = 1/12, s = 0.6416},
beta = (Mu - Sigma^2/2)*t + Sigma*Sqrt[t];
Table[(Xi = RandomVariate[NormalDistribution[], 12];
FoldList[(#1*Exp[beta*#2]) &, s, Xi]), {SeedRandom[2];
10000}] ]]; // Timing
{0.403365, Null}
나는 지역 상수에 대한
With
사용
및 Module
(Xi
) 또는 로컬 상수 (beta
)를 기반으로 한 계산입니다. This question on the Mathematica StackExchange는 With
대 Block
대 Module
를 사용할 때 설명하는 데 도움이됩니다. (Mathematica StackExchange를 더 자세히 살펴 보는 것이 좋습니다. Mathematica 전문가의 대부분이 지금 매달려 있습니다.)
Part
의 사용은 실제로 필요하지 않습니다. FoldList
을 사용하는 대신 Fold
을 사용하면됩니다. 접는 부분의 마지막 숫자는 FoldList
의 마지막 숫자와 동일합니다. 그래서 당신은 시도 할 수 :
이 방법으로
FF
계산
FF = Module[{Xi, beta}, With[{Mu = -0.00644131, Sigma = 0.0562005,
t = 1/12, s = 0.6416},
beta = (Mu - Sigma^2/2)*t + Sigma*Sqrt[t];
Table[(Xi = RandomVariate[NormalDistribution[], 12];
Fold[(#1*Exp[beta*#2]) &, s, Xi]), {SeedRandom[2];
10000}] ]];
Histogram[FF]
도 이전 버전보다 약간 빠릅니다. 내 시스템에서 Timing
은 0.377 초를보고하지만 0.4 초와의 차이는 걱정할 가치가 거의 없습니다.
당신이 SeedRandom
와 씨앗을 설정하고 있기 때문에, 모든 세 가지 코드 예제 정확히 같은 결과를 확인하기 쉽습니다.
이 당신이 원하는 무엇인가? – mohit6up
Thx 많이 - 저는 K = F [[All, 13]]를 찾을 수있었습니다. 그러나 이것은 훨씬 나아졌습니다. – seniorita
'F [[All, -1]]'도 작동합니다. – Heike