konvertieren Ich versuche, einige Python-Code in MATLAB neu zu schreiben, ist die Python-Code wie folgt aus:ein Python-Code in MATLAB
theta = 0:pi/510:2*pi;
phi = pi/3:2*pi/360:6*pi;
phi_outer = np.linspace(CV.Outer.phi_min, CV.Outer.phi_max, 100)
phi_inner = np.linspace(CV.Inner.phi_max, CV.Inner.phi_min, 100)
x1, y1 = coords(phi_outer, geo, theta, CV.Outer.involute)
t = np.linspace(0,1,100)
x3, y3 = coords(phi_inner, geo, theta, CV.Inner.involute)
x2 = (x3[0]-x1[-1])*t+x1[-1]
y2 = (y3[0]-y1[-1])*t+y1[-1]
x4 = (x1[0]-x3[-1])*t+x3[-1]
y4 = (y1[0]-y3[-1])*t+y3[-1]
Mein Versuch einer MATLAB-Konvertierung:
theta = 0:pi/510:2*pi;
phi = pi/3:2*pi/360:6*pi;
phi_outer = linspace(CV.Outer.phi_min, CV.Outer.phi_max, 100);
phi_inner = linspace(CV.Inner.phi_max, CV.Inner.phi_min, 100);
[x1, y1] = coords(phi_outer, geo, theta, CV.Outer.involute);
[x3, y3] = coords(phi_inner, geo, theta, CV.Inner.involute);
t = linspace(0,1,100);
x2 = (x3(2)-x1(1)).*t+x1(1);
y2 = (y3(2)-y1(1)).*t+y1(1);
x4 = (x1(2)-x3(1)).*t+x3(1);
y4 = (y1(2)-y3(1)).*t+y3(1);
X2
, y2
, x4
, y4
sind absolut nicht korrekt, aber ich habe nicht verstanden, was hier gemeint ist x3 [0] -x1 [-1]
) ... Also in MATLAB startet das Array mit x3(1)
nicht x3(0)
und es gibt n ich weiß wie x1(-1)
wie ich weiß. kann mir bitte jemand erklären und mir vielleicht vorschlagen, wie ich die x2
, y2
, x4
, y4
umschreiben soll.
Python Aufzählung mit 0 beginnt. Wenn Sie nicht wissen, wie lange die Liste (oder was auch immer) ist, wählt -1 das letzte Element in der Sequenz aus. – mauve
'x [-1]' bedeutet den letzten Wert des Arrays. In Matlab können Sie es in 'y3 (end)' konvertieren – iFlo