Ich arbeite an etwas ähnlich dem folgenden Beispiel: Ich möchte <x(t)>
das ist der Durchschnitt einer Funktion x(t)
über die Anzahl der Simulationen berechnen. Um dies zu tun, erzeuge ich den folgenden Code:berechnen den Durchschnitt über die Simulation für verschiedene Parameter Werte
sim=50;% number of simulations
t=linspace(0,1);% time interval
a_range=[1,2,3];% different values for the parameter a
b_range=[0,0.5,1];% different values for the parameter b
z=zeros(1,sim);
theta=zeros(1,sim);
for nplot=1:3
a=a_range(nplot);
b=b_range(nplot);
average_x=zeros(nplot,sim);
for i=1:sim
z(i)=rand(1);% random number for every simulation
theta(i)=pi*rand(1);% random number for every simulation
x=z(i)*t.^2+a*sin(theta(i))+b.*tan(theta(i));% the function
end
average_x(nplot,sim)=mean(x);% average over the number of simulations
end
fname=['xsin.mat'];
save(fname)
Es ist ein Vektor 1 von 100 und x ein Vektor 1 von 100 und average_x ist 1 von 50. Was ich suche ist ein schreiben Skript, um die Datei zu laden und den Durchschnitt für verschiedene Parameter a und b gegen die Zeit aufzuzeichnen. Deshalb möchte ich einen Code schreiben, drei Figuren zu erzeugen, so dass in Abbildung 1 Ich werde die durchschnittliche
plot(t,average_x)
für a = 1 und b = 0 plotten.
Dann in Abbildung 2 werde ich den Durchschnitt wieder zeichnen, aber für a = 2 und b = 0,5 und so weiter. Das Problem ist die Dimension der Zeit t und der Durchschnitt sind nicht gleich. Wie kann ich dieses Problem beheben und drei verschiedene Zahlen generieren?
Sie möchten 50 Werte gegen 100 Werte darstellen. Dies ist unmöglich, ohne 50 Werte anstelle von 100 zu wählen ** oder ** die 50 Werte auf 100 zu interpolieren. – EBH