Python function to Matlab

16 visualizaciones (últimos 30 días)
david crowley
david crowley el 27 de Abr. de 2021
Respondida: Al Danial el 4 de Mayo de 2022
I have the following moving average function developed in Python3 that I need to convert into MATLAB. However, I can't seem to find the correct syntax.
What is the MATLAB syntax to do the following? Please help.
#defines the moving average function
def ma(df, window_size):
return df.groupby('ticker')['close'].apply(lambda x:x.rolling(center=False,window=window_size).mean())
#defines the periods for the moving average calculations
def ma_periods(df, months):
for month in months:
df['{}mo_ma'.format(month)] = ma(monthly_raw_data, month)
return df
#specify the moving average periods to calculate
periods = ma_periods(monthly_raw_data, [6,9,12])

Respuestas (4)

Anagha Mittal
Anagha Mittal el 17 de Jun. de 2021
MATLAB provides an inbuilt function called 'movavg' for calculating the moving average of any data.
Here is the documentation for reference: https://www.mathworks.com/help/finance/movavg.html

Akanksha Shrimal
Akanksha Shrimal el 26 de Abr. de 2022
Hi,
It is my understanding that you want to compute the moving average in MATLAB similar to Python3 ‘rolling’ function.
The ‘movavg’ function of MATLAB computes the moving average.
Please refer to this documentation for more detail.
Hope this helps.

Steven Lord
Steven Lord el 26 de Abr. de 2022
As @Anagha Mittal and @Akanksha Shrimal have stated there is a function in Financial Toolbox called movavg.
However I'd recommend instead using the movmean function included in MATLAB.
Alternately if you don't want to use movmean and don't want to convert your Python code to MATLAB code you can still use MATLAB. See this category of the documentation for information about how to directly call Python from within MATLAB.

Al Danial
Al Danial el 4 de Mayo de 2022
Looks like monthly_raw_data is a Pandas dataframe. Can you post a small input file (.csv or other) that loads into a representative dataframe? I want to give @Steven Lord's alternate suggestion a try and write the MATLAB/Python interface. Even if a hybrid MATLAB/Python implementation is not your desired final solution, it can prove valuable as a reference solution for your ultimate MATLAB-only implementation.

Categorías

Más información sobre Call Python from MATLAB en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by