I've set up a Jupyter Notebook 6.5.4 (python 3.9.17) to run MATLAB scripts (MATLAB 2023a is installed on a 64-bit Windows 10 PC) via the matlab_kernel, following the instructions.
Basic functions like peaks or plot(...) work with no issue on Jupyter with matlab_kernel.
However, I got an error when executing a function that calls medfilt1.m in the signal toolbox (..\MATLAB\R2020a\toolbox\signal\signal\medfilt1.m).
The error message says,
Invalid MEX-file 'C:\Users\...\mvmedian.mexw64': The specified procedure could not be found.
I noticed that medfilt1.m calls mvmedian() (y = mvmedian(x,n,dim,'central',missing,padding)) and mvmedian.mexw64 file does exist in ..\MATLAB\R2020a\toolbox\signal\signal\private.
The function runs without any issue when I run the same script directly in MATLAB, and someone suggested that this might be something to do with matlab_kernel.
If anyone knows why this happens or how to fix this issue, please let me know.
It seems like private folder in the signal processing toolbox is inaccessible from Jupyter Notebook.
The code now works after installing jupyter-matlab-proxy as described here and copying and adding the private folder (and change the name) into the path.
I've set up a Jupyter Notebook 6.5.4 (python 3.9.17) to run MATLAB scripts (MATLAB 2023a is installed on a 64-bit Windows 10 PC) via the
matlab_kernel
, following the instructions.Basic functions like
peaks
orplot(...)
work with no issue on Jupyter withmatlab_kernel
.However, I got an error when executing a function that calls
medfilt1.m
in the signal toolbox (..\MATLAB\R2020a\toolbox\signal\signal\medfilt1.m
).The error message says,
I noticed that
medfilt1.m
callsmvmedian()
(y = mvmedian(x,n,dim,'central',missing,padding)
) andmvmedian.mexw64
file does exist in..\MATLAB\R2020a\toolbox\signal\signal\private
.The function runs without any issue when I run the same script directly in MATLAB, and someone suggested that this might be something to do with
matlab_kernel
.If anyone knows why this happens or how to fix this issue, please let me know.