[SciPy-User] Matlab and Python Problem
Suzen, Mehmet
msuzen at gmail.com
Fri Oct 18 10:04:13 EDT 2013
This documentation might help:
http://wiki.scipy.org/NumPy_for_Matlab_Users
On 18 October 2013 15:28, Francesco <anastasi.fr at gmail.com> wrote:
> Hello...
> my name is Francesco,
> i don't know to obtain python code from this matlab code:
>
> molle.m :
>
> function u = molle(tspan,u0,A,l,k,m)
> %N=3
> N=size(A,1)
>
> x=u0(1:3:3*N)
> y=u0(2:3:3*N);
> z=u0(3:3:3*N);
> vx=u0(3*N+1:3:6*N);
> vy=u0(3*N+2:3:6*N);
> vz=u0(3*N+3:3:6*N);
>
> for i = 1 : N
> Fx=0;
> Fy=0;
> Fz=0;
> for j = 1 : N
> if A(i,j) ~= 0
> d=((x(i)-x(j))^2+(y(i)-y(j))^2+(z(i)-z(j))^2)^0.5;
> Fx=Fx+k(i,j)*(abs(x(j)-x(i))-l(i,j))*(x(j)-x(i))*A(i,j)/d;
> Fy=Fy+k(i,j)*(abs(y(j)-y(i))-l(i,j))*(y(j)-y(i))*A(i,j)/d;
> Fz=Fz+k(i,j)*(abs(z(j)-z(i))-l(i,j))*(z(j)-z(i))*A(i,j)/d;
> end
> end
> u(1+3*(i-1))=u0(3*N+1+3*(i-1)); % dx
> u(2+3*(i-1))=u0(3*N+2+3*(i-1)); % dy
> u(3+3*(i-1))=u0(3*N+3+3*(i-1)); % dz
> u(3*N+1+3*(i-1))=Fx/m(i) ; % ax=F/m
> u(3*N+2+3*(i-1))=Fy/m(i) ; % ay=F/m
> u(3*N+3+3*(i-1))=Fz/m(i) ; % az=F/m
> end
> u=u';
>
> test.m :
>
> % esempio di 3 molle
> clc
> close all
> clear
>
> x0=[-1 0 1];
> y0=[0 1/2 0];
> z0=[0 0 0];
>
> Vx0=[0 0 0];
> Vy0=[0 1 0];
> Vz0=[0 0 0];
>
> A=[0 1 0; 1 0 1; 0 1 0];
>
> l = A ;
>
> k = A ;
>
> m = [1 1 1];
>
> u0 = [x0';y0';z0';Vx0';Vy0';Vz0'];
> tspan=[0 10];
> [t,u] = ode45(@molle,tspan,u0,[],A,l,k,m)
>
>
> x=u(:,1:3:3*size(A,1));
> y=u(:,2:3:3*size(A,1));
> z=u(:,3:3:3*size(A,1));
> vx=u(:,3*size(A,1)+1:3:6*size(A,1));
> vy=u(:,3*size(A,1)+2:3:6*size(A,1));
> vz=u(:,3*size(A,1)+3:3:6*size(A,1));
>
> maxX=max(max(x));
> maxY=max(max(y));
> maxZ=max(max(z));
> minX=min(min(x));
> minY=min(min(y));
> minZ=min(min(z));
>
>
> figure,
> for k = 1 : length(t)
> [aa bb]=view;
> plot3(x(k,:),y(k,:),z(k,:),'*')
> view(aa,bb)
> axis([minX maxX minY maxY minZ maxZ])
> grid on
> pause(0.5)
> end
>
> could help me?
>
> _______________________________________________
> SciPy-User mailing list
> SciPy-User at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
More information about the SciPy-User
mailing list