2017-05-07 3 views
0

Ich habe den folgenden Code, der eine Matrix von 15 Blöcken erzeugt, die dann in einem Montecarlo-Ansatz als mehrere Startpunkte verwendet werden. Wie kann ich das gleiche genaue Ergebnis auf eine klügere Weise erhalten?Matlab: effizienter Teil des Codes, zufälliger Start

davon ausgehen, dass J 15 * 100 =

[10^-10*ones(paramNum,round(J/15)) 10^-9*ones(paramNum,round(J/15)) 10^-8*ones(paramNum,round(J/15)) 10^-7*ones(paramNum,round(J/15)) 10^-6*ones(paramNum,round(J/15)) 10^-5*ones(paramNum,round(J/15)) rand*10^-5*ones(paramNum,round(J/15)) 10^-4*ones(paramNum,round(J/15)) rand*10^-4*ones(paramNum,round(J/15)) 10^-3*ones(paramNum,round(J/15)) 10^-2*ones(paramNum,round(J/15)) 10^-1*ones(paramNum,round(J/15)) 10^-abs(randn/2)*ones(paramNum,round(J/15))]; 

Antwort

0

die gesamte Simulation und paramNum die Anzahl der Parameter sind Sie

v = 10.^[-10:-5 rand*10^-5 -4:-1 10^-abs(randn/2)]; 
repmat(repelem(v, 1, round(J/15)), paramNum) .* ... 
repmat(ones(paramNum,round(J/15)), numel(v)) 

tun könnte oder die repmat/repelem Funktionalität mit einer for-Schleife nachahmen. Der erste ist kürzer, der spätere ist verständlicher.

Übrigens ... es ist weniger als 15 Blöcke ...

+0

Danke es gibt mir einen Fehler: Matrix muss zustimmen – Thegamer23

Verwandte Themen