Bonjour à tous.

Je suis actuellement en train de m'arracher les cheveux sur la possibilité de "traduire" une fonction écrite en python afin de l'utiliser sur Matlab
Mais comme je n'ai jamais programmé en python, je galère.... Du coup, je me demandais s'il existait une façon simple de le faire, ou si une âme charitable pouvait m'aider à traduire les lignes suivantes

Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
 
def pea(temp, salinity, depth, levels):
    """
Calculate potential energy anomaly (stratification index).
Parameters
    ----------
temp : ndarray
        Temperature data (depth-resolved).
salinity : ndarray
        Salinity data (depth-resolved).
depth : ndarray
        Water depth (positive down). Can be 1D (node) or 3D (time, siglay,
        node).
levels : ndarray
        Vertical levels (fractions of 0-1) (FVCOM = siglev).
Returns
    -------
PEA : ndarray
        Potential energy anomaly (J/m^{3}).
    Notes
    -----
    """
    nd = np.ndim(depth)
 
    g = 9.81
    rho = dens_jackett(temp, salinity)
    dz = np.abs(np.diff(levels, axis=0)) * depth
    if nd == 1:
        # dims is time only.
        H = np.cumsum(dz, axis=0)
        nz = dz.shape[0]
    else:
        # dims are [time, siglay, node].
        H = np.cumsum(dz, axis=1)
        nz = dz.shape[1]
 
    # Depth-averaged density
    rhobar = zbar(rho, dz)
 
    # Potential energy anomaly.
    PEA = np.zeros(rhobar.shape)
 
    # Hofmeister thesis equation.
    for i in range(nz):
        if nd == 1:
            PEA = PEA + ((rho[:, i, :] - rhobar) * g * H[i, :] * dz[i, :])
        else:
            PEA = PEA + ((rho[:, i, :] - rhobar) * g * H[:, i, :] * dz[:, i, :])
    if nd == 1:
        PEA = (1.0 / depth) * PEA
    else:
        PEA = (1.0 / depth.max(axis=1)) * PEA
 
    return PEA

Sachant que pour la fonction, "dens_jackett" (disponible sur ce lien https://github.com/pwcazenave/PyFVCO...ocean_tools.py), j'ai déjà mon équivalent en Matlab.

Merci d'avance de vos conseils et de votre aide!