{"id":867,"date":"2023-01-30T18:32:49","date_gmt":"2023-01-30T23:32:49","guid":{"rendered":"https:\/\/blogs.mathworks.com\/matlab\/?p=867"},"modified":"2024-12-18T05:00:52","modified_gmt":"2024-12-18T10:00:52","slug":"official-mathworks-matlab-kernel-for-jupyter-released","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/matlab\/2023\/01\/30\/official-mathworks-matlab-kernel-for-jupyter-released\/","title":{"rendered":"Official MathWorks MATLAB kernel for Jupyter released"},"content":{"rendered":"<div class=\"rtcContent\">\r\n\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: bold; font-size: 14px; font-weight: 400; text-align: left;\"><span style=\"font-weight: bold;\">Update:<\/span> Since this post was published, the MATLAB Kernel for Jupyter has also been made available on Windows.  See <a href=\"https:\/\/blogs.mathworks.com\/matlab\/2023\/06\/26\/matlab-kernel-for-jupyter-now-with-windows-support\/\">https:\/\/blogs.mathworks.com\/matlab\/2023\/06\/26\/matlab-kernel-for-jupyter-now-with-windows-support\/<\/a> for more details. <\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><a href=\"https:\/\/jupyter.org\/\">Jupyter Notebooks<\/a> allow users to combine rich text, code, data and computational results in a way that\u2019s similar to our own <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/matlab_prog\/what-is-a-live-script-or-function.html\">Live Scripts<\/a>. Jupyter, however, supports a range of languages including Python, R and even compiled languages such as C++ and Fortran. They are widely used in many areas of computational research, exploration and dissemination.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">I\u2019ve been a fan and enthusiastic user of Project Jupyter since before it was called Jupyter. So, when I first joined MathWorks and got to know everyone in product management and development, one of my first questions to everyone around here was \u201c<span style=\"font-style: italic;\">When are we going to support Jupyter more?\u201d <\/span><\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">As such, it gives me immense pleasure to be able to announce that the answer is \u201cRight now!\u201d As of Friday 27th of January in fact when MathWorks released an updated version of <a href=\"https:\/\/github.com\/mathworks\/jupyter-matlab-proxy\">jupyter-matlab-proxy to GitHub<\/a>. It\u2019s also <a href=\"https:\/\/pypi.org\/project\/jupyter-matlab-proxy\/\">available in PyPI<\/a> and so is installable via pip.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The package has been around for a while now but in the past it only supported the ability to access MATLAB in a browser from environments like JupyterHub. With the new update, you can now also run MATLAB code in Jupyter notebooks via a so-called <a href=\"https:\/\/github.com\/mathworks\/jupyter-matlab-proxy\/blob\/main\/src\/jupyter_matlab_kernel\/README.md\">MATLAB kernel for Jupyter<\/a>. This is the first tranche of the Jupyter-related functionality that I\u2019ve been begging for since I joined MathWorks.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The community has provided some kernel support for MATLAB for a while (Thank you Calysto) but with this release we can say that using MATLAB in Jupyter notebooks is now supported by MathWorks.<\/div>\r\n<h2 style=\"margin: 20px 10px 5px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;\">The elephant in the room \u2013 Can\u2019t install on Windows<\/h2>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Before I dive into what\u2019s been done, I\u2019d like to lean into what hasn\u2019t been done and that is a Windows version. The reason for this is that we have based the Jupyter integrations on <a href=\"https:\/\/github.com\/jupyterhub\/jupyter-server-proxy\">jupyter-server-proxy<\/a> and, as you can see from <a href=\"https:\/\/github.com\/jupyterhub\/jupyter-server-proxy\/issues\/147\">Windows support \u00b7 Issue #147 \u00b7 jupyterhub\/jupyter-server-proxy \u00b7 GitHub<\/a>, this does not currently support Windows.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The practical implication of this is that you can\u2019t install the MATLAB Jupyter kernel on a Windows machine and have it use your local Windows version of MATLAB.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Of course, since Jupyter is a web-based system, there will be plenty of ways that Windows users will be able to experience this kernel since it can be installed on remote servers. Expect to see it appearing on HPC clusters and <a href=\"https:\/\/www.mathworks.com\/academia\/research\/science-gateways.html\">Science Gateways<\/a> in the near future, for example.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">It\u2019s also possible to run the whole thing, MATLAB and all, in a <a href=\"https:\/\/www.mathworks.com\/help\/cloudcenter\/ug\/matlab-container-on-docker-hub.html\">Docker container<\/a> and use it from Windows that way \u2013 this is how I reviewed early versions of this package in fact.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">We are currently evaluating the options for supporting Windows installations in a potential future release of the integration<\/div>\r\n<h2 style=\"margin: 20px 10px 5px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;\">Installing the kernel<\/h2>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The official installation instructions are at <a href=\"https:\/\/github.com\/mathworks\/jupyter-matlab-proxy\">GitHub - mathworks\/jupyter-matlab-proxy: MATLAB Integration for Jupyter<\/a>.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Since my primary machine runs Windows, I decided to fire up MATLAB on an AWS VM running Linux using <a href=\"https:\/\/cloudcenter.mathworks.com\/resource\/\">MathWorks Cloud Centre<\/a>. At the time of writing, this gives me a fresh Ubuntu 20.04 install along with MATLAB R2022b. I installed Jupyter Lab with<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><span style=\"font-family: monospace;\">pip install jupyterlab<\/span><\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">and then installed the MATLAB kernel package with<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><span style=\"font-family: monospace;\">pip install jupyter-matlab-proxy<\/span><\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Since these were run with user permissions, everything was installed into <span style=\"font-family: monospace;\">\/home\/ubuntu\/.local\/bin\/<\/span> which is not on the system PATH. I added the following line to my .bashrc file and I was good to go<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><span style=\"font-family: monospace;\">export PATH=$PATH:\/home\/ubuntu\/.local\/bin\/<\/span><\/div>\r\n<h2 style=\"margin: 20px 10px 5px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;\">What you get in Jupyter Lab \u2013 MATLAB notebook kernel, a browser based version of MATLAB and a console<\/h2>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Assuming all goes well, this is what you should see in your web browser when you run Jupyter Lab<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 1023px; height: 555px;\" src=\"https:\/\/blogs.mathworks.com\/matlab\/files\/2023\/01\/jupyterKernel_1.png\" alt=\"\" width=\"768\" height=\"555\" \/><\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">There are 3 things I want to show you.<\/div>\r\nThe first is what we\u2019ve all been waiting for, a MATLAB kernel for Jupyter notebook. Click on that and you\u2019ll get a new notebook running MATLAB as a kernel. Here\u2019s one with a few commands executed.\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 768px; height: 510px;\" src=\"https:\/\/blogs.mathworks.com\/matlab\/files\/2023\/01\/jupyterKernel_2.png\" alt=\"\" width=\"768\" height=\"510\" \/><\/div>\r\nNext is the <span style=\"font-weight: bold;\">Open MATLAB<\/span> button. When I first saw this I thought it would just be a link to my local MATLAB executable. To my delight, however, I discovered that it launches a browser-based version of MATLAB. It\u2019s a similar experience to <a href=\"https:\/\/www.mathworks.com\/products\/matlab-online.html\">MATLAB Online<\/a> but running on my hardware (or the hardware of whatever server you are connected to if you are running this remotely).\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 768px; height: 555px;\" src=\"https:\/\/blogs.mathworks.com\/matlab\/files\/2023\/01\/jupyterKernel_3.png\" alt=\"\" width=\"768\" height=\"555\" \/><\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Look closely at the workspace and you\u2019ll discover that those are the variables I created in my notebook above. That is, the web version of MATLAB and the notebook are connected to the same instance of MATLAB. I can move between the two environments in whatever way I\u2019m most comfortable with.<\/div>\r\nFinally, we have the Console version of the MATLAB kernel. Again, this is connected to the same instance of MATLAB as the other two views\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 768px; height: 575px;\" src=\"https:\/\/blogs.mathworks.com\/matlab\/files\/2023\/01\/jupyterKernel_4.png\" alt=\"\" width=\"768\" height=\"575\" \/><\/div>\r\n<h2 style=\"margin: 20px 10px 5px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;\">Licensing<\/h2>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">The first time I tried to run a MATLAB Command in a Jupyter notebook, the licensing dialogue popped up<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 768px; height: 633px;\" src=\"https:\/\/blogs.mathworks.com\/matlab\/files\/2023\/01\/jupyterKernel_5.png\" alt=\"\" width=\"768\" height=\"633\" \/><\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">I signed into the MathWorks account associated with my license, the dialogue disappeared and I could proceed as you\u2019d expect. I only had to do this once. Even when my machine was rebooted or when I restarted Jupyter Lab, I was not bothered by licensing again.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">This requires that you have a license supported by the Jupyter integrations and not all license types are. At the time of writing, for example, MATLAB Home is not supported.<\/div>\r\n<h2 style=\"margin: 20px 10px 5px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;\">Some features of the MATLAB kernel for Jupyter<\/h2>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">If you have used Jupyter notebooks before, you get pretty much what you\u2019d expect. It's Jupyter but with MATLAB code. In the below, you can see that I ran the <span style=\"font-family: monospace;\">why<\/span> command a few times before I got what I wanted!<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 566px; height: 391px;\" src=\"https:\/\/blogs.mathworks.com\/matlab\/files\/2023\/01\/jupyterKernel_6.png\" alt=\"\" width=\"566\" height=\"391\" \/><\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Graphics are rendered inline and are static.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 572px; height: 561px;\" src=\"https:\/\/blogs.mathworks.com\/matlab\/files\/2023\/01\/jupyterKernel_7.png\" alt=\"\" width=\"572\" height=\"561\" \/><\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Expressions returned from symbolic toolbox are rendered using LaTeX<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 568px; height: 355px;\" src=\"https:\/\/blogs.mathworks.com\/matlab\/files\/2023\/01\/jupyterKernel_8.png\" alt=\"\" width=\"568\" height=\"355\" \/><\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Other objects, such as tables and dictionaries, are rendered in a similar way to how they appear in the MATLAB Command Window.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 573px; height: 420px;\" src=\"https:\/\/blogs.mathworks.com\/matlab\/files\/2023\/01\/jupyterKernel_9.png\" alt=\"\" width=\"573\" height=\"420\" \/><\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">There is also tab completion. For example, I typed \u2018<span style=\"font-family: monospace;\">ran<\/span>\u2019, pressed Tab and was greeted with the selection below<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 573px; height: 438px;\" src=\"https:\/\/blogs.mathworks.com\/matlab\/files\/2023\/01\/jupyterKernel_10.png\" alt=\"\" width=\"573\" height=\"438\" \/><\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">More kernel features will be added over time. Let us know what you are interested in by creating an issue <a href=\"https:\/\/github.com\/mathworks\/jupyter-matlab-proxy\/issues\">here,<\/a> sending an email to <strong>jupyter-support@mathworks.com<\/strong> or discuss in the comments section below.<\/div>\r\n<h3 style=\"margin: 15px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: bold; text-align: left;\">Limitations and things you might not expect<\/h3>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">I\u2019ve already covered the big one \u2013 no Windows support at the present time but there are a few other things you might want to know if you are used to using Jupyter with other languages.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><span style=\"font-weight: bold;\">Many notebooks but only one MATLAB \u2013 <\/span>If you have used Jupyter with a Python kernel, you\u2019ll be used to the idea that every notebook gets its own Python process. For this MATLAB kernel, all notebooks you run share the same MATLAB and the same workspace.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><span style=\"font-weight: bold;\">Some MATLAB commands are currently not supported in notebooks<\/span>. These include:<\/div>\r\n<ul style=\"margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif; font-size: 14px;\">\r\n \t<li style=\"margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;\">Commands that request interactive user input from users. For Example: input and keyboard.<\/li>\r\n \t<li style=\"margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;\">MATLAB Debugger commands. For Example: dbstep, dbup, and dbstack.<\/li>\r\n \t<li style=\"margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;\">Commands which require another browser tab to be opened. For Example: doc and appdesigner.<\/li>\r\n \t<li style=\"margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;\">Commands that create animations. For Example: movie, vibes.<\/li>\r\n \t<li style=\"margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;\"><span style=\"font-weight: bold;\">For MATLAB R2022a and earlier,<\/span> LASTERR and LASTERROR do not capture MATLAB errors from execution in notebooks.<\/li>\r\n \t<li style=\"margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap;\">Locally licensed MATLABs are currently not supported. Users must either login using Online Licensing or a Network License Manager.<\/li>\r\n<\/ul>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">A complete list of limitations can be found at <a href=\"https:\/\/github.com\/mathworks\/jupyter-matlab-proxy#limitations\">GitHub - mathworks\/jupyter-matlab-proxy: MATLAB Integration for Jupyter<\/a><\/div>\r\n<h2 style=\"margin: 20px 10px 5px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left;\">Tell us what you think<\/h2>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">So, there we have it. A quick tour of some of the features and limitations of our brand-new MATLAB kernel for Jupyter. As a long-time supporter and user of the Jupyter ecosystem, I am personally thrilled to see MathWorks do this.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">It\u2019s our first step into this world and we plan on doing a lot more. Please let us know what you think in the comments section. If you encounter a technical issue or have an enhancement request, create an issue\u00a0<a href=\"https:\/\/github.com\/mathworks\/jupyter-matlab-proxy\/issues\">here<\/a>\u00a0or send an email to\u00a0<strong>jupyter-support@mathworks.com.<\/strong><\/div>\r\n<\/div>\r\n<script type=\"text\/javascript\">var css = ''; var head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style'); head.appendChild(style); style.type = 'text\/css'; if (style.styleSheet){ style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); }<\/script>","protected":false},"excerpt":{"rendered":"<div class=\"overview-image\"><img src=\"https:\/\/blogs.mathworks.com\/matlab\/files\/2023\/01\/jupyterKernel_2.png\" class=\"img-responsive attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\" \/><\/div><p>\r\n\r\nUpdate: Since this post was published, the MATLAB Kernel for Jupyter has also been made available on Windows.  See... <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/matlab\/2023\/01\/30\/official-mathworks-matlab-kernel-for-jupyter-released\/\">read more >><\/a><\/p>","protected":false},"author":176,"featured_media":840,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[51,20,64,36],"tags":[],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/posts\/867"}],"collection":[{"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/users\/176"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/comments?post=867"}],"version-history":[{"count":12,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/posts\/867\/revisions"}],"predecessor-version":[{"id":2984,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/posts\/867\/revisions\/2984"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/media\/840"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/media?parent=867"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/categories?post=867"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/tags?post=867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}