Bonjour,
j'ai réalisé un script Matlab que j'ai traduit en Python grâce au script libermate. Et j'aimerais voir si la traduction fonction. Le problème c'est que dans mon script Matlab, je lit un fichier CSV et je le stocke dans une matrice, cependant, cette étape n'a pas été traduite.
J'ai donc essayé de corriger la chose et j'ai trouvé ceci dans la doc de Python :
1 2 | with open('/.../eye-11h08.csv', 'rb') as f: data = csv.reader(f, delimiter=';', quoting=csv.QUOTE_NONE) |
le seul problème, c'est que je ne connaît pas Python, j'arrive juste à le comprendre comme un français arrive à déchiffrer de l'espagnole, par comparaison avec le C++. Et je ne sais pas comment stocker les données de la fonction csv.reader
pour qu'elle soient exploitable par le reste de l'algorithme.
Voici le début de mon code Matlab d'origine :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | data = csvRead(fullfile('/.../eye-11h08.csv'), ';'); X=data(:,2:15); X = [X(:,1:3) X(:,12:14)]'; temps = data(:,1)'; X = X(:,1:9); temps = temps(:,1:9); clear data; nbrSample = max(size(X)); nbrMeasure = min(size(X)); % Averaging Xm = X - mean(X, 2)*ones(1,nbrSample); % Whitening [E,D]=eig(cov(Xm')); Xw = E*D^(-0.5)*E'*Xm; clear Xm; %... |
et voici le code Python traduit (j'ai remplacé le morceau non traduit de la lecture du CSV, mais l'utilisation de data
ne marche pas) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | import numpy as np import scipy import matcompat import csv # if available import pylab (from matlibplot) try: import matplotlib.pylab as plt except ImportError: pass with open('/.../eye-11h08.csv', 'rb') as f: data = csv.reader(f, delimiter=';', quoting=csv.QUOTE_NONE) X = data[:,1:15.] X = np.array(np.hstack((X[:,0:3.], X[:,11:14.]))).conj().T temps = data[:,0].conj().T X = X[:,0:9.] temps = temps[:,0:9.] clear(data) nbrSample = matcompat.max(matcompat.size(X)) nbrMeasure = matcompat.max(matcompat.size(X)) #% Averaging Xm = X-np.dot(np.mean(X, 2.), np.ones(1., nbrSample)) #% Whitening [E, D] = linalg.eig(np.cov(Xm.conj().T)) Xw = np.dot(np.dot(np.dot(E, matixpower(D, -0.5)), E.conj().T), Xm) clear(Xm) #... |
J'espère que vous pourrez m'aider
Merci d'avance.
PS : pour ceux qui se demanderaient pourquoi j’utilise Python, c'est pcq c'est un des langage de script d'un logiciel.