Also habe ich diesen Code in Python geschrieben. Ich werde es nicht erklären, da es sich um eine einfache Syntaxkorrektur handelt, die ich nicht zu sehen bekomme. Es ist daher sinnlos zu erklären, wofür es ist.Wissenschaftliche Python-Array-Syntax
Das Problem, das ich habe, ist, dass für einen gegebenen d, zum Beispiel 15 ich den Wert von "cuentas" richtig und "e" richtig bekomme.
Was ich tun möchte, ist eine Reihe von d's durchlaufen und den Wert von jedem cuentas und jedem e zu erhalten, um d vs e zu plotten.
Mein Problem ist, dass ich nicht scheinen, wie man eine Matrix in Python erstellen.
in Matlab verwendet i zwei verschiedene Schleifen wie theese zu schreiben:
for i=1:1:N
for j=1:9
a[i,j]= and so on
a [i, j] würde eine Matrix mit N Reihen und 9 Spalten, die i zugreifen konnten und manipulieren.
In meinem Code unten i intentionaly Kommentare # gesetzt wird, wo ich
import numpy as np
import matplotlib.pyplot as plt
N=100000
cos=np.zeros(N)
phi=np.zeros(N)
teta=np.zeros(N)
a=np.zeros(N)
xrn=np.zeros(N)
yrn=np.zeros(N)
zrn=np.zeros(N)
x=np.zeros(N)
y=np.zeros(N)
z=np.zeros(N)
lim1=14.7
lim2=3.35
lim3=-lim1
lim4=-lim2
#d=np.array([15,20,25,30,35,40,45,50,55])
d=15
#for j in range(9):
for i in range(N):
cos[i]=np.random.uniform(-1,1)
teta[i]=np.random.uniform(-np.pi,np.pi)
phi[i]=np.random.uniform(0,2*np.pi)
# a[i]=d[j]/cos[i]*np.cos(phi[i])
a[i]=d/cos[i]*np.cos(phi[i])
xrn[i]=np.random.uniform(-1,1)*lim1
yrn[i]=np.random.uniform(-1,1)*lim2
x[i]=a[i]*np.sin(teta[i])*np.cos(phi[i])+xrn[i]
y[i]=a[i]*np.sin(teta[i])*np.sin(phi[i])+yrn[i]
#cuentas[j]=0
cuentas=0
#for j in range(9):
for i in range(N):
if a[i]>0 and x[i] < lim1 and x[i]>lim3 and y[i] < lim2 and y[i]>lim4:
cuentas=cuentas+1
#e[j]=cuenta[j]/N
e=cuentas/N
durch die Entfernungen iterieren wollen Lesen
Vielen Dank an diejenigen, auch !!
Können Sie _exactly_ klarstellen, welche Ausgabe von Ihrem Skript erwartet wird? Es scheint keine offensichtlichen Fehler zu geben – tel