{"id":3674,"date":"2025-05-15T03:16:03","date_gmt":"2025-05-15T07:16:03","guid":{"rendered":"https:\/\/blogs.mathworks.com\/matlab\/?p=3674"},"modified":"2025-05-15T03:16:03","modified_gmt":"2025-05-15T07:16:03","slug":"matlab-r2025a-has-been-released-whats-new","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/matlab\/2025\/05\/15\/matlab-r2025a-has-been-released-whats-new\/","title":{"rendered":"MATLAB R2025a has been released &#8211; What&#8217;s new?"},"content":{"rendered":"<div class = rtcContent><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>As the first version following MathWorks' 40th anniversary in 2024, MATLAB R2025a is probably the biggest release I've ever experienced as both a user and a MathWorker. The breadth and depth of what's new is so large that it makes my head spin a little and I'm almost not sure where to start in an overview post like this. Almost!<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>This blog post is just a quick tour through some of my highlights of this release. There are hundreds of new features (or thousands depending on how you count them) and I couldn't possibly discuss them all in an article like this. Head over to <\/span><a href = \"https:\/\/www.mathworks.com\/help\/releases\/R2025a\/matlab\/release-notes.html\"><span>the full release notes<\/span><\/a><span> to see all of the details for yourself and keep an eye out on the various <\/span><a href = \"https:\/\/blogs.mathworks.com\"><span>MATLAB Blogs<\/span><\/a><span> for deeper dives into the new functionality in the near future.<\/span><\/div><h2  style = 'margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span>The new MATLAB desktop<\/span><\/h2><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>The first thing you're going to notice on opening the desktop version of MATLAB is that it has a completely refreshed look. The old Java-based desktop is gone and is replaced by one that uses technologies such as JavaScript and HTML for a much more modern experience. Millions of you will find it familiar because it is, in fact, the same desktop that we've been using and developing in <\/span><a href = \"https:\/\/www.mathworks.com\/products\/matlab-online.html\"><span>MATLAB Online<\/span><\/a><span> for several years now. The new desktop has also been available as a Beta-version add-on for over 2 years (e.g. see my <\/span><a href = \"https:\/\/blogs.mathworks.com\/matlab\/2023\/03\/17\/try-dark-mode-on-desktop-matlab-with-the-new-desktop-for-matlab\/\"><span>blog post from March 2023 <\/span><\/a><span>discussing it) and we've received feedback on it from thousands of users. There are people at MathWorks who have read and processed every single piece of that feedback! Thank you again to everyone who took the time to tell us how you were getting on with the new desktop.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Now that MATLAB Online and Desktop MATLAB share the same, modern code-base we'll be able to bring new features to you much more quickly. You can expect faster access to cutting-edge tools, streamlined workflows and more frequent updates that help you stay at the forefront of technical computing. Let's look at a summary of some of the new desktop features we've already delivered as part of this release.<\/span><\/div><h3  style = 'margin: 15px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: 700; text-align: left; '><span>Dark mode and improved accessibility<\/span><\/h3><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>I previewed this <\/span><a href = \"https:\/\/blogs.mathworks.com\/matlab\/2023\/03\/17\/try-dark-mode-on-desktop-matlab-with-the-new-desktop-for-matlab\/\"><span>over two years ago when the first beta version of the new desktop was released<\/span><\/a><span> and now its part of the default MATLAB desktop. Join the millions of users of MATLAB Online and rest your eyes in the desktop version of MATLAB. Head over to <\/span><a href = \"https:\/\/www.mathworks.com\/help\/releases\/R2025a\/matlab\/matlab_env\/change-desktop-colors-and-select-dark-theme.html\"><span>Change Desktop Theme and Colors<\/span><\/a><span> to learn how to do it.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"http:\/\/blogs.mathworks.com\/matlab\/files\/2025\/05\/r2025aRelease_1-1.png\" width = \"950\" height = \"426\" alt = \"\" style = \"vertical-align: baseline; width: 950px; height: 426px;\"><\/img><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>On the accessibility front, it's now possible to <\/span><span style=' font-weight: bold;'>use a screen reader to work with the Command Window, move around the MATLAB desktop tools, and create or edit files in the Editor and Live Editor.<\/span><span> This was available as a beta for R2024b but is now fully integrated into the product. Screen reader support <\/span><a href = \"https:\/\/www.mathworks.com\/help\/releases\/R2025a\/matlab\/release-notes.html#mw_a84bfc9c-01c7-4735-8bda-7b8329710e13\"><span>has also been added to figure interaction<\/span><\/a><span>. You can check out more details in the documentation at <\/span><a href = \"https:\/\/www.mathworks.com\/help\/releases\/R2025a\/matlab\/matlab_env\/accessibility-in-matlab.html\"><span>Accessibility in MATLAB<\/span><\/a><span>. <\/span><\/div><h3  style = 'margin: 15px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: 700; text-align: left; '><span>Side panels and documents in the new desktop<\/span><\/h3><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>In the new desktop, everything below the toolstrip is either a document or a side panel (and occasionally both!). Roughly speaking, documents are working areas and side panels are supporting tools for various workflows. Documents include things like .m files, figures and Live Scripts. Examples of side panels include the Files Panel (replacing the Current Folder browser), the test browser panel and the Debugger panel.  More details including how to configure the new desktop can be found in the documentation page <\/span><a href = \"https:\/\/www.mathworks.com\/help\/releases\/R2025a\/matlab\/matlab_env\/change-the-desktop-layout.html\"><span>Configure the Desktop<\/span><\/a><span> and I'll follow up with my own tour of the desktop soon.<\/span><\/div><h3  style = 'margin: 15px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: 700; text-align: left; '><span>We want your feedback<\/span><\/h3><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>I have no doubt that you have questions and comments about this new desktop and we are here to give you answers. Your options include dropping a comment here,<\/span><a href = \"https:\/\/www.mathworks.com\/matlabcentral\/discussions\/\"><span> starting a conversation over at MATLAB Central<\/span><\/a><span>, <\/span><a href = \"https:\/\/www.mathworks.com\/support\/contact_us.html\"><span>contacting support<\/span><\/a><span> or hit the feedback button right there in the MATLAB desktop; another feature of the new desktop that I<\/span><a href = \"https:\/\/blogs.mathworks.com\/matlab\/2025\/03\/20\/weve-been-listening-matlab-r2025a-prerelease-update-5-now-available\/\"><span> discussed near the end of March<\/span><\/a><span>.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"http:\/\/blogs.mathworks.com\/matlab\/files\/2025\/05\/r2025aRelease_2-1.png\" width = \"180\" height = \"95\" alt = \"\" style = \"vertical-align: baseline; width: 180px; height: 95px;\"><\/img><\/div><h2  style = 'margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span>New figure container and toolstrip<\/span><\/h2><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>In older versions of MATLAB, every new figure would be created in its own window. In R2025a, the default behavior is for figures to open as tabs docked in a figure container. There's a lot to say about this new figure ecosystem and the <\/span><a href = \"https:\/\/blogs.mathworks.com\/graphics-and-apps\/\"><span>MATLAB Graphics and App Building blog<\/span><\/a><span> will be bringing you all of the details soon.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"http:\/\/blogs.mathworks.com\/matlab\/files\/2025\/05\/r2025aRelease_3-1.gif\" width = \"950\" height = \"535\" alt = \"\" style = \"vertical-align: baseline; width: 950px; height: 535px;\"><\/img><\/div><h2  style = 'margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span>MATLAB Copilot<\/span><\/h2><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Generative AI has the potential to transform how engineering and science is done and some of the most popular recent posts on The MATLAB Blog have been on the topic. My October 2024 article, <\/span><a href = \"https:\/\/blogs.mathworks.com\/matlab\/2024\/10\/02\/4-ways-of-using-matlab-with-large-language-models-llms-such-as-chatgpt-and-ollama\/\"><span>4 ways of using Large Language Models (LLMS) with MATLAB<\/span><\/a><span> needs to be updated because now there is another way.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><a href = \"https:\/\/www.mathworks.com\/products\/matlab-copilot.html\"><span>MATLAB Copilot<\/span><\/a><span> is a new product from MathWorks that integrates generative AI models with your everyday workflows in MATLAB. Expect to hear a lot more about MATLAB Copilot in future blog posts.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"http:\/\/blogs.mathworks.com\/matlab\/files\/2025\/05\/r2025aRelease_4-1.png\" width = \"950\" height = \"539\" alt = \"\" style = \"vertical-align: baseline; width: 950px; height: 539px;\"><\/img><\/div><h2  style = 'margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span>Further evolution of Live Scripts<\/span><\/h2><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>I love live scripts. Indeed, every post on The MATLAB Blog is written as a Live Script that then gets converted to something WordPress can consume using <\/span><a href = \"https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/103730-publishing-tool-for-matlab-live-script-to-wordpress\"><span>wp_publisher from File Exchange<\/span><\/a><span> so they are part of my daily workflow. One feature that I've been eagerly waiting for is the <\/span><span style=' font-weight: bold;'>ability to embed YouTube videos into Live Scripts;<\/span><span> such as this one.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><iframe class = \"onlineVideoNode\" src = \"https:\/\/www.youtube.com\/embed\/qa57xOtogp4\" width = \"560\" height = \"315\"><\/iframe><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>The rise in popularity of the <\/span><a href = \"https:\/\/matlab.mathworks.com\/open\/github\/v1?repo=MathWorks-Teaching-Resources\/Fourier-Analysis&amp;project=fourier-analysis.prj&amp;file=README.mlx\"><img class = \"imageNode\" src = \"http:\/\/blogs.mathworks.com\/matlab\/files\/2025\/05\/r2025aRelease_5-1.png\" width = \"136\" height = \"20\" alt = \"\" style = \"vertical-align: baseline; width: 136px; height: 20px;\"><\/img><\/a><span> workflow is one of the reasons why more people than ever are using Live Scripts with git and GitHub. However, traditional Live Scripts have a problem: They are in a binary file format which means that they don't play nicely with text-centric version control systems such as git. This is why <\/span><span style=' font-weight: bold;'>MathWorks have developed a new plain text live code format.<\/span><span> This was available as a beta in R2024b and is now fully-fledged and part of the R2025a release. The screenshot below gives a hint of what's going on. For more details check out the documentation  <\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/matlab_prog\/plain-text-file-format-for-live-scripts.html\"><span>Live Code File Format (.m)<\/span><\/a><span>.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"http:\/\/blogs.mathworks.com\/matlab\/files\/2025\/05\/r2025aRelease_6-1.png\" width = \"950\" height = \"256\" alt = \"\" style = \"vertical-align: baseline; width: 950px; height: 256px;\"><\/img><\/div><h2  style = 'margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span>Additional Markdown support<\/span><\/h2><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Over the last few releases, we've been adding support for Markdown documents including things like syntax highlighting for Markdown in the MATLAB editor (R2024a) and the ability to export Live Scripts to Markdown via the <\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/export.html\"><span style=' font-family: monospace;'>export<\/span><\/a><span> function (R2023b). The big Markdown news in this release is the ability to render Markdown documents in the MATLAB editor. <\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"http:\/\/blogs.mathworks.com\/matlab\/files\/2025\/05\/r2025aRelease_7-1.png\" width = \"951\" height = \"499\" alt = \"\" style = \"vertical-align: baseline; width: 951px; height: 499px;\"><\/img><\/div><h2  style = 'margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span>Enhanced GPU functionality<\/span><\/h2><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Last year <\/span><a href = \"https:\/\/blogs.mathworks.com\/matlab\/2024\/09\/26\/matlab-now-has-over-1000-functions-that-just-work-on-nvidia-gpus\/\"><span>I took a deeper look at all of the functions in MATLAB that have NVIDIA GPU support<\/span><\/a><span> via the <\/span><a href = \"https:\/\/www.mathworks.com\/help\/parallel-computing\/gpuarray.html\"><span style=' font-family: monospace;'>gpuArray<\/span><\/a><span> datatype. In R2024, 1195 functions were supported across 14 toolboxes. R2025a brings those numbers up to 1256 functions across 17 toolboxes. Here's a graph of the growth over time.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"http:\/\/blogs.mathworks.com\/matlab\/files\/2025\/05\/r2025aRelease_8-1.png\" width = \"448\" height = \"329\" alt = \"\" style = \"vertical-align: baseline; width: 448px; height: 329px;\"><\/img><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Overviews of the new GPU-enabled functions and workflows can be found at <\/span><a href = \"https:\/\/www.mathworks.com\/help\/parallel-computing\/release-notes.html?s_tid=CRUX_lftnav#mw_9adf403d-16d1-4ca6-982f-2241b814c464\"><span>GPU Functionality: Use functions with new and enhanced <\/span><span style=' font-family: monospace;'>gpuArray<\/span><span> support<\/span><\/a><span> and <\/span><a href = \"https:\/\/uk.mathworks.com\/help\/releases\/R2025a\/parallel-computing\/release-notes.html?s_tid=CRUX_lftnav#mw_414525bf-1cdc-4715-97ab-be6219d0ae76\"><span>GPU Workflow Examples: New and updated GPU computing examples<\/span><\/a><span>. <\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>One example I found particularly interesting was <\/span><a href = \"https:\/\/www.mathworks.com\/help\/antenna\/ug\/accelerate-ray-tracing-analysis-using-gpu.html\"><span>Accelerate Ray Tracing Analysis Using GPU<\/span><\/a><span> from Antenna Toolbox. This set up a transmitter and receiver in Hong Kong using building data from OpenStreetMap and computed the propagation paths between sites using both CPU and GPU. The documentation shows a GPU speed-up of 3.6x which is pretty close to the 2.9x speed-up I observed when I ran it on my machine. Of course the exact speed-up will vary according to you hardware but I found it very easy to run the example and find out for myself.  <\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><a href = \"https:\/\/www.mathworks.com\/help\/antenna\/ug\/accelerate-ray-tracing-analysis-using-gpu.html\"><img class = \"imageNode\" src = \"http:\/\/blogs.mathworks.com\/matlab\/files\/2025\/05\/r2025aRelease_9-1.png\" width = \"500\" height = \"393\" alt = \"propagation paths found by the GPU between transmitter and receiver using building data for Hong Kong from OpenStreetMap.\" style = \"vertical-align: baseline; width: 500px; height: 393px;\"><\/img><\/a><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>The number of new functions supporting <\/span><span style=' font-family: monospace;'>gpuArray<\/span><span> are only part of the GPU story in MATLAB. There are also a number of older <\/span><span style=' font-family: monospace;'>gpuArray<\/span><span> functions that have been made faster such as <\/span><span style=' font-family: monospace;'>mean<\/span><span> (<\/span><a href = \"https:\/\/www.mathworks.com\/help\/parallel-computing\/release-notes.html?s_tid=CRUX_lftnav#mw_252b6188-3da3-4adc-9b6e-18e950a19d7e\"><span>2.4x faster<\/span><\/a><span>) , <\/span><span style=' font-family: monospace;'>movmean<\/span><span> (<\/span><a href = \"https:\/\/www.mathworks.com\/help\/parallel-computing\/release-notes.html?s_tid=CRUX_lftnav#mw_252b6188-3da3-4adc-9b6e-18e950a19d7e\"><span>1.6x faster<\/span><\/a><span>), <\/span><span style=' font-family: monospace;'>histcounts<\/span><span> (<\/span><a href = \"https:\/\/www.mathworks.com\/help\/parallel-computing\/release-notes.html?s_tid=CRUX_lftnav#mw_4b993cba-51fa-49b1-93ec-f4ac02b65a6c\"><span>1.7x faster<\/span><\/a><span>) and improved training and inference performance for Transformer Networks in Deep Learning Toolbox (<\/span><a href = \"https:\/\/www.mathworks.com\/help\/deeplearning\/release-notes.html?s_tid=CRUX_lftnav#mw_8c440fa1-c0f2-4d8c-a6b3-96f27e3620fb\"><span>2.5x faster<\/span><\/a><span>). Of course the actual speed-ups you'll experience depend on both your hardware and the details of each problem; all of the links to the speed-ups I've just given you contain full details of our test set-up.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Then we have some functions where the <\/span><span style=' font-family: monospace;'>gpuArray<\/span><span> support has been enhanced - <\/span><a href = \"https:\/\/www.mathworks.com\/help\/images\/ref\/bwdist.html\"><span style=' font-family: monospace;'>bwdist<\/span><\/a><span>, for example, has<\/span><a href = \"https:\/\/www.mathworks.com\/help\/images\/release-notes.html?s_tid=CRUX_lftnav#mw_3d558688-d24e-497a-88db-6e8451887ced\"><span> extended its GPU support to include the processing of 3-D images<\/span><\/a><span> while <\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/double.min.html\"><span style=' text-decoration: underline; font-family: monospace;'>min<\/span><\/a><span>,<\/span><span> <\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/double.max.html\"><span style=' font-family: monospace;'>max<\/span><\/a><span>,<\/span><span> <\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/double.sum.html\"><span style=' font-family: monospace;'>sum<\/span><\/a><span>,<\/span><span> <\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/double.prod.html\"><span style=' font-family: monospace;'>prod<\/span><\/a><span>,<\/span><span> <\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/ind2sub.html\"><span style=' font-family: monospace;'>ind2sub<\/span><\/a><span>,<\/span><span> <\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/double.rem.html\"><span style=' font-family: monospace;'>rem<\/span><\/a><span>,<\/span><span> <\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/double.mod.html\"><span style=' font-family: monospace;'>mod<\/span><\/a><span>,<\/span><span> <\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/double.power.html\"><span style=' font-family: monospace;'>power<\/span><\/a><span>,<\/span><span> <\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/double.realpow.html\"><span style=' font-family: monospace;'>realpow<\/span><\/a><span>,<\/span><span> <\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/double.mean.html\"><span style=' font-family: monospace;'>mean<\/span><\/a><span>,<\/span><span> <\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/double.median.html\"><span style=' font-family: monospace;'>median<\/span><\/a><span>,<\/span><span> <\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/intmin.html\"><span style=' font-family: monospace;'>intmin<\/span><\/a><span>,<\/span><span> <\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/intmax.html\"><span style=' font-family: monospace;'>intmax<\/span><\/a><span>,<\/span><span> <\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/double.cummin.html\"><span style=' font-family: monospace;'>cummin<\/span><\/a><span>,<\/span><span> <\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/double.cummax.html\"><span style=' font-family: monospace;'>cummax<\/span><\/a><span>,<\/span><span> <\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/double.cumsum.html\"><span style=' font-family: monospace;'>cumsum<\/span><\/a><span> and <\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/double.cumprod.html\"><span style=' font-family: monospace;'>cumprod<\/span><\/a><span> have all been extended so that you can use <\/span><span style=' font-family: monospace;'>int64<\/span><span> on the GPU. There's also support for a new data-type: <\/span><span style=' font-family: monospace;'>single<\/span><span> precision <\/span><span style=' font-family: monospace;'>sparse<\/span><span> matrices and dozens of functions have been updated to support it on the GPU. <\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>A small quality of life update to <\/span><span style=' font-family: monospace;'>gpuArray<\/span><span> workflows is the ability to gather <\/span><span style=' font-family: monospace;'>gpuArray<\/span><span> objects from the Desktop. You just right-click the variable in the workspace and select <\/span><span style=' font-weight: bold;'>Gather from GPU<\/span><span>.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"http:\/\/blogs.mathworks.com\/matlab\/files\/2025\/05\/r2025aRelease_10-1.png\" width = \"383\" height = \"518\" alt = \"\" style = \"vertical-align: baseline; width: 383px; height: 518px;\"><\/img><\/div><h3  style = 'margin: 15px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: 700; text-align: left; '><span>Performance analysis in GPU Coder<\/span><\/h3><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Moving on to look at GPU functionality outside of <\/span><span style=' font-family: monospace;'>gpuArray<\/span><span>, I now turn to <\/span><a href = \"https:\/\/www.mathworks.com\/products\/gpu-coder.html\"><span>GPU Coder<\/span><\/a><span>  which is a product that generates CUDA code from MATLAB code. There is an update to the <\/span><a href = \"https:\/\/www.mathworks.com\/help\/gpucoder\/ug\/gpu-performance-analyzer-overview.html\"><span>GPU Performance Analyzer<\/span><\/a><span> that automatically detects common performance bottlenecks in generated CUDA code when you use the <\/span><span style=' font-family: monospace;'>gpuPerformanceAnalyzer<\/span><span> function. The <\/span><span style=' font-weight: bold;'>Profiling Timeline<\/span><span> pane indicates bottlenecks with a warning icon , and the new <\/span><span style=' font-weight: bold;'>Diagnostics<\/span><span> pane describes the bottlenecks<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"http:\/\/blogs.mathworks.com\/matlab\/files\/2025\/05\/r2025aRelease_11-1.png\" width = \"951\" height = \"687\" alt = \"\" style = \"vertical-align: baseline; width: 951px; height: 687px;\"><\/img><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>While on the subject of performance evaluation of code generated by GPU Coder, I urge you to take a look at the new <\/span><a href = \"https:\/\/www.mathworks.com\/help\/gpucoder\/ug\/analyze-deep-learning-network-and-layer-performance-using-the-deep-learning-dashboard.html\"><span>Analyzing Network Performance Using the Deep Learning Dashboard<\/span><\/a><span> page in the documentation. The following screenshot alone makes me want to investigate it much more deeply (pun not intended). <\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"http:\/\/blogs.mathworks.com\/matlab\/files\/2025\/05\/r2025aRelease_12-1.png\" width = \"950\" height = \"648\" alt = \"\" style = \"vertical-align: baseline; width: 950px; height: 648px;\"><\/img><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Along with these new performance tools, GPU Coder has a range of additional enhancements including <\/span><a href = \"https:\/\/www.mathworks.com\/help\/gpucoder\/release-notes.html?s_tid=CRUX_lftnav#mw_58d13a48-8225-4e05-845b-8358d3cdc257\"><span>support for new functions<\/span><\/a><span>, <\/span><a href = \"https:\/\/www.mathworks.com\/help\/gpucoder\/release-notes.html?s_tid=CRUX_lftnav#mw_58d13a48-8225-4e05-845b-8358d3cdc257\"><span>new deep learning layers<\/span><\/a><span> and the <\/span><a href = \"https:\/\/www.mathworks.com\/help\/gpucoder\/release-notes.html?s_tid=CRUX_lftnav#mw_cc5e07e5-ed1f-4658-8ea1-5a8cd0d5c2d2\"><span>generation of more optimized CUDA code for <\/span><span style=' font-family: monospace;'>median<\/span><span>, <\/span><span style=' font-family: monospace;'>cumtrapz<\/span><span> and <\/span><span style=' font-family: monospace;'>envelope<\/span><\/a><span>. Some of these optimizations are rather dramatic too with CUDA code generated from <\/span><span style=' font-family: monospace;'>cumtrapz<\/span><span>, for example, being approximately 20x faster than before. <\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>See <\/span><a href = \"https:\/\/www.mathworks.com\/help\/gpucoder\/release-notes.html?s_tid=CRUX_lftnav\"><span>Release Notes for GPU Coder<\/span><\/a><span> for more of everything else that's new here. <\/span><\/div><h2  style = 'margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span>Coding and Software Development<\/span><\/h2><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>This is a big release for coding and software development workflows. Many of the new panels in the new desktop, for example, are related to these topics with the Source Control panel, shown below, being a prime example. Other panels of interest here are Debugger, Project, Test Browser, Code Issues, and Code Outline.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"http:\/\/blogs.mathworks.com\/matlab\/files\/2025\/05\/r2025aRelease_13-1.png\" width = \"636\" height = \"458\" alt = \"\" style = \"vertical-align: baseline; width: 636px; height: 458px;\"><\/img><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Outside of the new desktop, you can see that there are a lot of additional <\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/release-notes.html?s_tid=CRUX_lftnav#mw_f0627fe5-0d34-4b53-a4e2-2a963898301f\"><span>software development enhancements<\/span><\/a><span> in areas such as Projects, Code Analyzer, Git Source Control, Build Automation, Unit Testing Framework and Toolbox packaging. <\/span><\/div><h2  style = 'margin: 3px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span>Progress with MATLAB and Python<\/span><\/h2><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>When I deliver seminars and workshops on the integration of MATLAB and Python, one of the first things I tell my audience is \"Always use the latest version of MATLAB if you are interested in using MATLAB and Python together\". This is because we improve this functionality every release and R2025a is no exception. Let's start with a quality of life improvement to dealing with Python environments. <\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Before running Python functions in MATLAB, you first have to decide if you want to run Python in the same process as MATLAB <\/span><span style=' font-family: monospace;'>(ExecutionMode==\"InProcess\")<\/span><span> or in a separate process <\/span><span style=' font-family: monospace;'>(ExecutionMode=\"OutOfProcess\")<\/span><span> and there are pros and cons of each. Prior to R2025a, if you wanted to switch execution mode, you would always have to restart MATLAB. Now, however, if you start off with  <\/span><span style=' font-family: monospace;'>OutOfProcess<\/span><span> and change your mind you can terminate it and switch to <\/span><span style=' font-family: monospace;'>InProcess<\/span><span> without needing to restart MATLAB.<\/span><\/div><div style=\"background-color: #F5F5F5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;\"><div class=\"inlineWrapper\"><div  style = 'border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 1px solid rgb(217, 217, 217); border-bottom: 0px none rgb(33, 33, 33); border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace, Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; '><span style=\"white-space: pre\"><span style=\"color: rgb(0, 128, 19);\">% Create an OutOfProcess Python Environment<\/span><\/span><\/div><\/div><div class=\"inlineWrapper\"><div  style = 'border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 0px none rgb(33, 33, 33); border-bottom: 0px none rgb(33, 33, 33); border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace, Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; '><span style=\"white-space: pre\"><span >pe = pyenv(ExecutionMode=<\/span><span style=\"color: rgb(167, 9, 245);\">\"OutOfProcess\"<\/span><span >);<\/span><\/span><\/div><\/div><div class=\"inlineWrapper\"><div  style = 'border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 0px none rgb(33, 33, 33); border-bottom: 0px none rgb(33, 33, 33); border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace, Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; '><span style=\"white-space: pre\"><span style=\"color: rgb(0, 128, 19);\">% Do a calculation in Python<\/span><\/span><\/div><\/div><div class=\"inlineWrapper outputs\"><div  style = 'border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 0px none rgb(33, 33, 33); border-bottom: 1px solid rgb(217, 217, 217); border-radius: 0px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace, Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; '><span style=\"white-space: pre\"><span >py.math.sqrt(2)<\/span><\/span><\/div><div  style = 'color: rgb(33, 33, 33); padding: 10px 0px 6px 17px; background: rgb(255, 255, 255) none repeat scroll 0% 0% \/ auto padding-box border-box; font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px; '><div class=\"inlineElement eoOutputWrapper disableDefaultGestureHandling embeddedOutputsVariableStringElement\" uid=\"83156495\" prevent-scroll=\"true\" data-testid=\"output_0\" tabindex=\"-1\" style=\"width: 1145px; white-space: pre; font-style: normal; color: rgb(33, 33, 33); font-size: 12px;\"><div class=\"textElement eoOutputContent\" tabindex=\"-1\" data-previous-available-width=\"1108\" data-previous-scroll-height=\"20\" data-hashorizontaloverflow=\"false\" role=\"article\" aria-roledescription=\"Use Browse Mode to explore \" aria-description=\"variable output \" style=\"max-height: 261px; white-space: pre; font-style: normal; color: rgb(33, 33, 33); font-size: 12px;\"><div style=\"white-space: pre; font-style: normal; color: rgb(33, 33, 33); font-size: 12px;\"><span class=\"variableNameElement\" style=\"white-space: pre; font-style: normal; color: rgb(33, 33, 33); font-size: 12px;\">ans = <\/span>1.4142<\/div><\/div><\/div><\/div><\/div><\/div><div  style = 'margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Let's say that I've changed my mind and don't want to run Python out of process anymore. I first terminate it<\/span><\/div><div style=\"background-color: #F5F5F5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;\"><div class=\"inlineWrapper\"><div  style = 'border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 1px solid rgb(217, 217, 217); border-bottom: 0px none rgb(33, 33, 33); border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace, Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; '><span style=\"white-space: pre\"><span style=\"color: rgb(0, 128, 19);\">% Terminate the OutOfProcess Environment<\/span><\/span><\/div><\/div><div class=\"inlineWrapper\"><div  style = 'border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 0px none rgb(33, 33, 33); border-bottom: 1px solid rgb(217, 217, 217); border-radius: 0px 0px 4px 4px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace, Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; '><span style=\"white-space: pre\"><span >terminate(pe)<\/span><\/span><\/div><\/div><\/div><div  style = 'margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>and then proceed with creating a new environment. Prior to R2025a, this would have required me to restart MATLAB<\/span><\/div><div style=\"background-color: #F5F5F5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;\"><div class=\"inlineWrapper\"><div  style = 'border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 1px solid rgb(217, 217, 217); border-bottom: 0px none rgb(33, 33, 33); border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace, Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; '><span style=\"white-space: pre\"><span style=\"color: rgb(0, 128, 19);\">%Create an InProcess Python Environment<\/span><\/span><\/div><\/div><div class=\"inlineWrapper\"><div  style = 'border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 0px none rgb(33, 33, 33); border-bottom: 0px none rgb(33, 33, 33); border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace, Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; '><span style=\"white-space: pre\"><span >pe = pyenv(ExecutionMode=<\/span><span style=\"color: rgb(167, 9, 245);\">\"InProcess\"<\/span><span >);<\/span><\/span><\/div><\/div><div class=\"inlineWrapper\"><div  style = 'border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 0px none rgb(33, 33, 33); border-bottom: 0px none rgb(33, 33, 33); border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace, Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; '>&nbsp;<\/div><\/div><div class=\"inlineWrapper\"><div  style = 'border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 0px none rgb(33, 33, 33); border-bottom: 0px none rgb(33, 33, 33); border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace, Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; '><span style=\"white-space: pre\"><span style=\"color: rgb(0, 128, 19);\">% Run a Python command using this new environment<\/span><\/span><\/div><\/div><div class=\"inlineWrapper outputs\"><div  style = 'border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 0px none rgb(33, 33, 33); border-bottom: 1px solid rgb(217, 217, 217); border-radius: 0px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace, Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; '><span style=\"white-space: pre\"><span >py.math.sqrt(3)<\/span><\/span><\/div><div  style = 'color: rgb(33, 33, 33); padding: 10px 0px 6px 17px; background: rgb(255, 255, 255) none repeat scroll 0% 0% \/ auto padding-box border-box; font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px; '><div class=\"inlineElement eoOutputWrapper disableDefaultGestureHandling embeddedOutputsVariableStringElement\" uid=\"A260DC38\" prevent-scroll=\"true\" data-testid=\"output_1\" tabindex=\"-1\" style=\"width: 1145px; white-space: pre; font-style: normal; color: rgb(33, 33, 33); font-size: 12px;\"><div class=\"textElement eoOutputContent\" tabindex=\"-1\" data-previous-available-width=\"1108\" data-previous-scroll-height=\"20\" data-hashorizontaloverflow=\"false\" role=\"article\" aria-roledescription=\"Use Browse Mode to explore \" aria-description=\"variable output \" style=\"max-height: 261px; white-space: pre; font-style: normal; color: rgb(33, 33, 33); font-size: 12px;\"><div style=\"white-space: pre; font-style: normal; color: rgb(33, 33, 33); font-size: 12px;\"><span class=\"variableNameElement\" style=\"white-space: pre; font-style: normal; color: rgb(33, 33, 33); font-size: 12px;\">ans = <\/span>1.7321<\/div><\/div><\/div><\/div><\/div><\/div><div  style = 'margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>You still can't do it the other way around, however. Once you have an <\/span><span style=' font-family: monospace;'>InProcess<\/span><span> Python environment, you can't switch to an <\/span><span style=' font-family: monospace;'>OutOfProcess<\/span><span> environment without restarting MATLAB.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>So much for calling Python from MATLAB. There have also been some improvements on calling MATLAB from Python. In particular, MATLAB <\/span><a href = \"https:\/\/www.mathworks.com\/help\/releases\/R2025a\/matlab\/matlab_external\/use-matlab-tables-and-timetables-in-python.html\"><span>tables and timetables get automatically converted into Pandas data frames and vice versa<\/span><\/a><span>. It's also easier to work with MATLAB's <\/span><span style=' font-family: monospace;'>datetime<\/span><span> and <\/span><span style=' font-family: monospace;'>duration<\/span><span> datatypes in Python as they too <\/span><a href = \"https:\/\/www.mathworks.com\/help\/releases\/R2025a\/matlab\/matlab_external\/use-matlab-datetime-and-duration-types-in-python.html\"><span>automatically get converted to the relevant Python datatypes<\/span><\/a><span>. This makes it much easier to transfer data between MATLAB and Python functions when working in Python.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Here are a few additional Python-related enhancements across various other MathWorks' products in this release.<\/span><\/div><ul  style = 'margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px; '><li  style = 'margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap; '><span style=' font-weight: bold;'>(MATLAB Compiler SDK)<\/span><span> <\/span><a href = \"https:\/\/www.mathworks.com\/help\/compiler_sdk\/python\/create-python-package-using-python-package-compiler-app.html\"><span>Create Python Package using Python Package Compiler App<\/span><\/a><span> - It has been possible to create Python packages from MATLAB code using the MATLAB Compiler SDK for quite some time but this has been made easier in R2025a using the new <\/span><a href = \"https:\/\/www.mathworks.com\/help\/compiler_sdk\/ml_code\/pythonpackagecompiler-app.html\"><span>Python Package Compiler<\/span><\/a><span> App. <\/span><\/li><li  style = 'margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap; '><span style=' font-weight: bold;'>(Deep Learning Toolbox)<\/span><span> Improved importing and performance of PyTorch models - A set of new features that improve performance and support of PyTorch models running in MATLAB. Highlights include several updates to the <\/span><a href = \"https:\/\/www.mathworks.com\/help\/deeplearning\/ref\/importnetworkfrompytorch.html\"><span style=' font-family: monospace;'>importNetworkFromPyTorch<\/span><\/a><span> function and <\/span><a href = \"https:\/\/www.mathworks.com\/help\/deeplearning\/release-notes.html?s_tid=CRUX_lftnav#mw_c9ce3e1b-f2fc-40bc-88a4-205283622d5f\"><span>improved performance for inference on models imported from PyTorch<\/span><\/a><span>. <\/span><\/li><li  style = 'margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap; '><span style=' font-weight: bold;'>(Deep Learning Toolbox and MATLAB Compiler SDK)<\/span><span> TensorFlow support has been enhanced in R2025a. The<\/span><span> <\/span><a href = \"https:\/\/www.mathworks.com\/help\/deeplearning\/ref\/importnetworkfromtensorflow.html\"><span style=' font-family: monospace;'>importNetworkFromTensorFlow<\/span><\/a><span> <\/span><span>function generates networks with <\/span><a href = \"https:\/\/www.mathworks.com\/help\/deeplearning\/release-notes.html?s_tid=CRUX_lftnav#mw_fb14d584-6f11-44d9-8e77-2432687d37c4\"><span>improved inference performance when used on a GPU<\/span><\/a><span>. You can also now deploy code containing the<\/span><span> <\/span><a href = \"https:\/\/www.mathworks.com\/help\/deeplearning\/ref\/exportnetworktotensorflow.html\"><span style=' font-family: monospace;'>exportNetworkToTensorFlow<\/span><\/a><span> <\/span><span>function in standalone applications compiled with<\/span><span> <\/span><span>MATLAB Compiler SDK<\/span><\/li><\/ul><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Rounding things off, here are a few updates related to Python and Simulink. Since I'm not a Simulink guy, I'll just link to each release note without further comment.<\/span><\/div><ul  style = 'margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px; '><li  style = 'margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap; '><a href = \"https:\/\/www.mathworks.com\/help\/simulink\/release-notes.html?s_tid=CRUX_lftnav#mw_c0217178-13fc-4087-9f1a-740e5634cbb5\"><span>Python Code Block: Bring Python code into Simulink<\/span><\/a><span> (Simulink)<\/span><\/li><li  style = 'margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap; '><a href = \"https:\/\/www.mathworks.com\/help\/simulink\/release-notes.html?s_tid=CRUX_lftnav#mw_c19f03b5-205d-46d6-ac92-7c2bdf3c92c3\"><span>Python Importer: Improve simulation performance of Python class methods integrated into Simulink<\/span><\/a><span> (Simulink)<\/span><\/li><li  style = 'margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap; '><a href = \"https:\/\/www.mathworks.com\/help\/simulink\/release-notes.html?s_tid=CRUX_lftnav#mw_9a7ce732-5658-46bf-9f86-8fae9929993c\"><span>Generate test harness models for blocks in Python Importer<\/span><\/a><span> (Simulink)<\/span><\/li><\/ul><h2  style = 'margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span>Single precision sparse matrices<\/span><\/h2><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>When your matrix has more zeros than anything else, it often pays to use sparse matrices. For many years, sparse matrices in MATLAB could only either be of type <\/span><span style=' font-family: monospace;'>double<\/span><span> or <\/span><span style=' font-family: monospace;'>logical<\/span><span>. The ability to create and use <\/span><span style=' font-family: monospace;'>single<\/span><span> precision sparse matrices has been requested by a huge number of users and so we are happy to announce full support for <\/span><span style=' font-family: monospace;'>single<\/span><span> precision sparse matrices in R2025a. <\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Almost everywhere in MATLAB where you can use a <\/span><span style=' font-family: monospace;'>double<\/span><span> precision sparse matrix, you can now use a <\/span><span style=' font-family: monospace;'>single<\/span><span> sparse matrix as well and that includes on NVIDIA GPUs and in Distributed arrays. Creating a single precision sparse matrix is as easy as adding <\/span><span style=' font-family: monospace;'>\"single\"<\/span><span> to the creation function<\/span><\/div><div style=\"background-color: #F5F5F5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;\"><div class=\"inlineWrapper outputs\"><div  style = 'border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 1px solid rgb(217, 217, 217); border-bottom: 1px solid rgb(217, 217, 217); border-radius: 4px 4px 0px 0px; padding: 6px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace, Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; '><span style=\"white-space: pre\"><span >mySingleSparse = speye(3,<\/span><span style=\"color: rgb(167, 9, 245);\">\"single\"<\/span><span >)<\/span><\/span><\/div><div  style = 'color: rgb(33, 33, 33); padding: 10px 0px 6px 17px; background: rgb(255, 255, 255) none repeat scroll 0% 0% \/ auto padding-box border-box; font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px; '><div class=\"inlineElement eoOutputWrapper disableDefaultGestureHandling embeddedOutputsVariableStringElement\" uid=\"8D036B38\" prevent-scroll=\"true\" data-testid=\"output_2\" tabindex=\"-1\" style=\"width: 1145px; white-space: pre; font-style: normal; color: rgb(33, 33, 33); font-size: 12px;\"><div class=\"textElement eoOutputContent\" tabindex=\"-1\" data-previous-available-width=\"1108\" data-previous-scroll-height=\"64\" data-hashorizontaloverflow=\"false\" role=\"article\" aria-roledescription=\"Use Browse Mode to explore \" aria-description=\"variable output \" style=\"max-height: 261px; white-space: pre; font-style: normal; color: rgb(33, 33, 33); font-size: 12px;\"><div style=\"white-space: pre; font-style: normal; color: rgb(33, 33, 33); font-size: 12px;\"><span class=\"variableNameElement\" style=\"white-space: pre; font-style: normal; color: rgb(33, 33, 33); font-size: 12px;\">mySingleSparse = <span class=\"headerElement\" style=\"white-space: pre; font-style: normal; color: rgb(33, 33, 33); font-size: 12px;\">3\u00d73 sparse single matrix (3 nonzeros)<\/span><\/span><\/div><div style=\"white-space: pre; font-style: normal; color: rgb(33, 33, 33); font-size: 12px;\">   (1,1)        1\r\n   (2,2)        1\r\n   (3,3)        1\r\n<\/div><\/div><\/div><\/div><\/div><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>or you can convert from an existing <\/span><span style=' font-family: monospace;'>double<\/span><span> sparse matrix<\/span><\/div><div style=\"background-color: #F5F5F5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;\"><div class=\"inlineWrapper\"><div  style = 'border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 1px solid rgb(217, 217, 217); border-bottom: 1px solid rgb(217, 217, 217); border-radius: 4px; padding: 6px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace, Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; '><span style=\"white-space: pre\"><span >myOtherSparse = single(someDoubleSparse);<\/span><\/span><\/div><\/div><\/div><div  style = 'margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>A deep dive into this functionality will be appearing soon on The MATLAB Blog and I'll link to it here when it's ready.<\/span><\/div><h2  style = 'margin: 3px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span>Maximum length of MATLAB identifiers increased to 2048 characters<\/span><\/h2><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>This would have resulted in an error message in previous versions of MATLAB since the maximum number of characters used for identifiers such as function and variable names used to be 63. Now it's 2048.<\/span><\/div><div style=\"background-color: #F5F5F5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;\"><div class=\"inlineWrapper outputs\"><div  style = 'border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 1px solid rgb(217, 217, 217); border-bottom: 1px solid rgb(217, 217, 217); border-radius: 4px 4px 0px 0px; padding: 6px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace, Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; '><span style=\"white-space: pre\"><span >NowWeCanCreateExtremelyLongVariableNamesIfWeAreSoInclinedAndAreNoLongerLimitedTo63Charcters = 42<\/span><\/span><\/div><div  style = 'color: rgb(33, 33, 33); padding: 10px 0px 6px 17px; background: rgb(255, 255, 255) none repeat scroll 0% 0% \/ auto padding-box border-box; font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px; '><div class=\"inlineElement eoOutputWrapper disableDefaultGestureHandling embeddedOutputsVariableStringElement\" uid=\"6E7E7B11\" prevent-scroll=\"true\" data-testid=\"output_3\" tabindex=\"-1\" style=\"width: 1145px; white-space: pre; font-style: normal; color: rgb(33, 33, 33); font-size: 12px;\"><div class=\"textElement eoOutputContent\" tabindex=\"-1\" data-previous-available-width=\"1108\" data-previous-scroll-height=\"20\" data-hashorizontaloverflow=\"false\" role=\"article\" aria-roledescription=\"Use Browse Mode to explore \" aria-description=\"variable output \" style=\"max-height: 261px; white-space: pre; font-style: normal; color: rgb(33, 33, 33); font-size: 12px;\"><div style=\"white-space: pre; font-style: normal; color: rgb(33, 33, 33); font-size: 12px;\"><span class=\"variableNameElement\" style=\"white-space: pre; font-style: normal; color: rgb(33, 33, 33); font-size: 12px;\">NowWeCanCreateExtremelyLongVariableNamesIfWeAreSoInclinedAndAreNoLongerLimitedTo63Charcters = <\/span>42<\/div><\/div><\/div><\/div><\/div><\/div><div  style = 'margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Personally, I rarely hit the 63 character limit since I'm the kind of programmer who would prefer to do<\/span><\/div><div style=\"background-color: #F5F5F5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;\"><div class=\"inlineWrapper outputs\"><div  style = 'border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 1px solid rgb(217, 217, 217); border-bottom: 1px solid rgb(217, 217, 217); border-radius: 4px 4px 0px 0px; padding: 6px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace, Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; '><span style=\"white-space: pre\"><span >N = 42<\/span><\/span><\/div><div  style = 'color: rgb(33, 33, 33); padding: 10px 0px 6px 17px; background: rgb(255, 255, 255) none repeat scroll 0% 0% \/ auto padding-box border-box; font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px; '><div class=\"inlineElement eoOutputWrapper disableDefaultGestureHandling embeddedOutputsVariableStringElement\" uid=\"23134FC1\" prevent-scroll=\"true\" data-testid=\"output_4\" tabindex=\"-1\" style=\"width: 1145px; white-space: pre; font-style: normal; color: rgb(33, 33, 33); font-size: 12px;\"><div class=\"textElement eoOutputContent\" tabindex=\"-1\" data-previous-available-width=\"1108\" data-previous-scroll-height=\"20\" data-hashorizontaloverflow=\"false\" role=\"article\" aria-roledescription=\"Use Browse Mode to explore \" aria-description=\"variable output \" style=\"max-height: 261px; white-space: pre; font-style: normal; color: rgb(33, 33, 33); font-size: 12px;\"><div style=\"white-space: pre; font-style: normal; color: rgb(33, 33, 33); font-size: 12px;\"><span class=\"variableNameElement\" style=\"white-space: pre; font-style: normal; color: rgb(33, 33, 33); font-size: 12px;\">N = <\/span>42<\/div><\/div><\/div><\/div><\/div><\/div><div  style = 'margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>There are some users, however, who have a need for longer identifiers. We have a lot of <\/span><a href = \"https:\/\/www.mathworks.com\/solutions\/automotive\/standards\/autosar.html\"><span>AUTOSAR users,<\/span><\/a><span> for example, where the maximum identifier length is 128 characters so MATLAB's old 63 character limit could sometimes cause compatibility problems. Another use case is auto-generated MATLAB code based on things defined in external documents. In turn, those documents might be based on some standard that leads to quite long names.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>The last time we increased this limit was in 2002 when it was increased from 31 to 63 characters. This was also when we introduced the <\/span><a href = \"https:\/\/uk.mathworks.com\/help\/matlab\/ref\/namelengthmax.html\"><span style=' font-family: monospace;'>namelengthmax<\/span><\/a><span> function which has returned 63 for more than two decades. In R2025a, it will return 2048. We can't rule out the possibility that it might change again sometime in the next couple of decades so make sure you use <\/span><span style=' font-family: monospace;'>namelengthmax<\/span><span> instead of hard-coding the limit if you write code that depends on this. <\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>You probably fall into one of two camps regarding this change. One group will never care and wonder why on earth you'll need more than 63 characters for a MATLAB identifier and other group will be saying \"Finally! This has been causing me pain for a long time.\" <\/span><\/div><h2  style = 'margin: 3px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span>Many data import functions now support compressed files<\/span><\/h2><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>This is another quality of life improvement. In older versions of MATLAB if someone sent you some data as a .zip file, you had to decompress it before you could open it.<\/span><\/div><div style=\"background-color: #F5F5F5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;\"><div class=\"inlineWrapper\"><div  style = 'border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 1px solid rgb(217, 217, 217); border-bottom: 0px none rgb(33, 33, 33); border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace, Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; '><span style=\"white-space: pre\"><span >unzip(<\/span><span style=\"color: rgb(167, 9, 245);\">\"somedata.zip\"<\/span><span >)<\/span><\/span><\/div><\/div><div class=\"inlineWrapper outputs\"><div  style = 'border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 0px none rgb(33, 33, 33); border-bottom: 1px solid rgb(217, 217, 217); border-radius: 0px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace, Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; '><span style=\"white-space: pre\"><span >data = readtable(<\/span><span style=\"color: rgb(167, 9, 245);\">\"somedata.csv\"<\/span><span >)<\/span><\/span><\/div><div  style = 'color: rgb(33, 33, 33); padding: 10px 0px 6px 17px; background: rgb(255, 255, 255) none repeat scroll 0% 0% \/ auto padding-box border-box; font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px; '><div class=\"inlineElement eoOutputWrapper disableDefaultGestureHandling embeddedOutputsVariableTableElement\" uid=\"27EAC7DE\" prevent-scroll=\"true\" data-testid=\"output_5\" tabindex=\"-1\" style=\"width: calc(100% - 5px);\"><div class=\"outputLayer selectedOutputDecorationLayer doNotExport\" aria-hidden=\"true\"><\/div><div class=\"outputLayer activeOutputDecorationLayer doNotExport\" aria-hidden=\"true\"><\/div><div class=\"outputLayer scrollableOutputDecorationLayer doNotExport\" aria-hidden=\"true\"><\/div><div class=\"outputLayer navigationFocusLayer doNotExport\" aria-hidden=\"false\" role=\"application\" tabindex=\"-1\"><\/div><div class=\"ClientDocument veSpecifier table DataFitToViewport\" id=\"variableeditor_client_Document_0\" widgetid=\"variableeditor_client_Document_0\" tabindex=\"0\" aria-labelledby=\"variableeditor_views_SummaryBar_0\"><div class=\"summaryBar\" style=\"font-size: 12px; font-family: Consolas, Inconsolata, Menlo, monospace;\"><span>data = <\/span><span style=\"color: rgb(179, 179, 179); font-style: normal;\">3\u00d73 table <\/span><\/div><div id=\"variableeditor_TableViewModel_0\" widgetid=\"variableeditor_TableViewModel_0\" class=\"table lightWeightView ClientViewDiv hasSummaryBar\" data-viewid=\"__1\" style=\"width: 100%; overflow: auto;\"><table cellspacing=\"0\" style=\"border-spacing: 0px; border-collapse: collapse;\"><thead><tr><th rowspan=\"1\" style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 34px; border: 1px solid rgb(191, 191, 191); text-align: left; background-color: rgb(245, 245, 245); color: rgba(0, 0, 0, 0.75); font-weight: 700; box-sizing: border-box;\"><span><\/span><\/th><th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 82px; min-width: 82px; max-width: 82px; border: 1px solid rgb(191, 191, 191); text-align: center; background-color: rgb(245, 245, 245); color: rgba(0, 0, 0, 0.75); font-weight: 700; box-sizing: border-box;\"><span>col1<\/span><\/th><th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 82px; min-width: 82px; max-width: 82px; border: 1px solid rgb(191, 191, 191); text-align: center; background-color: rgb(245, 245, 245); color: rgba(0, 0, 0, 0.75); font-weight: 700; box-sizing: border-box;\"><span>col2<\/span><\/th><th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 82px; min-width: 82px; max-width: 82px; border: 1px solid rgb(191, 191, 191); text-align: center; background-color: rgb(245, 245, 245); color: rgba(0, 0, 0, 0.75); font-weight: 700; box-sizing: border-box;\"><span>col3<\/span><\/th><\/tr><\/thead><tbody><tr><th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 34px; border-width: 0px 1px 1px; border-style: solid; border-color: rgb(191, 191, 191); border-image: initial; text-align: left; background-color: rgb(245, 245, 245); color: rgba(0, 0, 0, 0.75); font-weight: 700; box-sizing: border-box;\"><span>1<\/span><\/th><td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 82px; min-width: 82px; max-width: 82px; border-width: 0px 1px 1px; border-style: solid; border-color: rgb(191, 191, 191); border-image: initial; text-align: right;\"><span>1<\/span><\/td><td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 82px; min-width: 82px; max-width: 82px; border-width: 0px 1px 1px; border-style: solid; border-color: rgb(191, 191, 191); border-image: initial; text-align: right;\"><span>2<\/span><\/td><td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 82px; min-width: 82px; max-width: 82px; border-width: 0px 1px 1px; border-style: solid; border-color: rgb(191, 191, 191); border-image: initial; text-align: right;\"><span>3<\/span><\/td><\/tr><tr><th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 34px; border-width: 0px 1px 1px; border-style: solid; border-color: rgb(191, 191, 191); border-image: initial; text-align: left; background-color: rgb(245, 245, 245); color: rgba(0, 0, 0, 0.75); font-weight: 700; box-sizing: border-box;\"><span>2<\/span><\/th><td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 82px; min-width: 82px; max-width: 82px; border-width: 0px 1px 1px; border-style: solid; border-color: rgb(191, 191, 191); border-image: initial; text-align: right;\"><span>4<\/span><\/td><td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 82px; min-width: 82px; max-width: 82px; border-width: 0px 1px 1px; border-style: solid; border-color: rgb(191, 191, 191); border-image: initial; text-align: right;\"><span>5<\/span><\/td><td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 82px; min-width: 82px; max-width: 82px; border-width: 0px 1px 1px; border-style: solid; border-color: rgb(191, 191, 191); border-image: initial; text-align: right;\"><span>6<\/span><\/td><\/tr><tr><th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 34px; border-width: 0px 1px 1px; border-style: solid; border-color: rgb(191, 191, 191); border-image: initial; text-align: left; background-color: rgb(245, 245, 245); color: rgba(0, 0, 0, 0.75); font-weight: 700; box-sizing: border-box;\"><span>3<\/span><\/th><td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 82px; min-width: 82px; max-width: 82px; border-width: 0px 1px 1px; border-style: solid; border-color: rgb(191, 191, 191); border-image: initial; text-align: right;\"><span>7<\/span><\/td><td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 82px; min-width: 82px; max-width: 82px; border-width: 0px 1px 1px; border-style: solid; border-color: rgb(191, 191, 191); border-image: initial; text-align: right;\"><span>8<\/span><\/td><td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 82px; min-width: 82px; max-width: 82px; border-width: 0px 1px 1px; border-style: solid; border-color: rgb(191, 191, 191); border-image: initial; text-align: right;\"><span>9<\/span><\/td><\/tr><\/tbody><\/table><\/div><\/div><\/div><\/div><\/div><\/div><div  style = 'margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Now you can just open it direct from <\/span><span style=' font-family: monospace;'>readtable<\/span><span> without polluting the file system with the uncompressed .csv file<\/span><\/div><div style=\"background-color: #F5F5F5; margin: 10px 15px 10px 0; display: inline-block; min-width: 100%;\"><div class=\"inlineWrapper outputs\"><div  style = 'border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 1px solid rgb(217, 217, 217); border-bottom: 1px solid rgb(217, 217, 217); border-radius: 4px 4px 0px 0px; padding: 6px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace, Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; '><span style=\"white-space: pre\"><span >data = readtable(<\/span><span style=\"color: rgb(167, 9, 245);\">\"somedata.zip\/somedata.csv\"<\/span><span >)<\/span><\/span><\/div><div  style = 'color: rgb(33, 33, 33); padding: 10px 0px 6px 17px; background: rgb(255, 255, 255) none repeat scroll 0% 0% \/ auto padding-box border-box; font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px; '><div class=\"inlineElement eoOutputWrapper disableDefaultGestureHandling embeddedOutputsVariableTableElement\" uid=\"9FADDBDC\" prevent-scroll=\"true\" data-testid=\"output_6\" tabindex=\"-1\" style=\"width: calc(100% - 5px);\"><div class=\"outputLayer selectedOutputDecorationLayer doNotExport\" aria-hidden=\"true\"><\/div><div class=\"outputLayer activeOutputDecorationLayer doNotExport\" aria-hidden=\"true\"><\/div><div class=\"outputLayer scrollableOutputDecorationLayer doNotExport\" aria-hidden=\"true\"><\/div><div class=\"outputLayer navigationFocusLayer doNotExport\" aria-hidden=\"false\" role=\"application\" tabindex=\"-1\"><\/div><div class=\"ClientDocument veSpecifier table DataFitToViewport\" id=\"variableeditor_client_Document_1\" widgetid=\"variableeditor_client_Document_1\" tabindex=\"0\" aria-labelledby=\"variableeditor_views_SummaryBar_1\"><div class=\"summaryBar\" style=\"font-size: 12px; font-family: Consolas, Inconsolata, Menlo, monospace;\"><span>data = <\/span><span style=\"color: rgb(179, 179, 179); font-style: normal;\">3\u00d73 table <\/span><\/div><div id=\"variableeditor_TableViewModel_1\" widgetid=\"variableeditor_TableViewModel_1\" class=\"table lightWeightView ClientViewDiv hasSummaryBar\" data-viewid=\"__1\" style=\"width: 100%; overflow: auto;\"><table cellspacing=\"0\" style=\"border-spacing: 0px; border-collapse: collapse;\"><thead><tr><th rowspan=\"1\" style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 34px; border: 1px solid rgb(191, 191, 191); text-align: left; background-color: rgb(245, 245, 245); color: rgba(0, 0, 0, 0.75); font-weight: 700; box-sizing: border-box;\"><span><\/span><\/th><th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 82px; min-width: 82px; max-width: 82px; border: 1px solid rgb(191, 191, 191); text-align: center; background-color: rgb(245, 245, 245); color: rgba(0, 0, 0, 0.75); font-weight: 700; box-sizing: border-box;\"><span>col1<\/span><\/th><th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 82px; min-width: 82px; max-width: 82px; border: 1px solid rgb(191, 191, 191); text-align: center; background-color: rgb(245, 245, 245); color: rgba(0, 0, 0, 0.75); font-weight: 700; box-sizing: border-box;\"><span>col2<\/span><\/th><th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 82px; min-width: 82px; max-width: 82px; border: 1px solid rgb(191, 191, 191); text-align: center; background-color: rgb(245, 245, 245); color: rgba(0, 0, 0, 0.75); font-weight: 700; box-sizing: border-box;\"><span>col3<\/span><\/th><\/tr><\/thead><tbody><tr><th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 34px; border-width: 0px 1px 1px; border-style: solid; border-color: rgb(191, 191, 191); border-image: initial; text-align: left; background-color: rgb(245, 245, 245); color: rgba(0, 0, 0, 0.75); font-weight: 700; box-sizing: border-box;\"><span>1<\/span><\/th><td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 82px; min-width: 82px; max-width: 82px; border-width: 0px 1px 1px; border-style: solid; border-color: rgb(191, 191, 191); border-image: initial; text-align: right;\"><span>1<\/span><\/td><td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 82px; min-width: 82px; max-width: 82px; border-width: 0px 1px 1px; border-style: solid; border-color: rgb(191, 191, 191); border-image: initial; text-align: right;\"><span>2<\/span><\/td><td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 82px; min-width: 82px; max-width: 82px; border-width: 0px 1px 1px; border-style: solid; border-color: rgb(191, 191, 191); border-image: initial; text-align: right;\"><span>3<\/span><\/td><\/tr><tr><th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 34px; border-width: 0px 1px 1px; border-style: solid; border-color: rgb(191, 191, 191); border-image: initial; text-align: left; background-color: rgb(245, 245, 245); color: rgba(0, 0, 0, 0.75); font-weight: 700; box-sizing: border-box;\"><span>2<\/span><\/th><td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 82px; min-width: 82px; max-width: 82px; border-width: 0px 1px 1px; border-style: solid; border-color: rgb(191, 191, 191); border-image: initial; text-align: right;\"><span>4<\/span><\/td><td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 82px; min-width: 82px; max-width: 82px; border-width: 0px 1px 1px; border-style: solid; border-color: rgb(191, 191, 191); border-image: initial; text-align: right;\"><span>5<\/span><\/td><td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 82px; min-width: 82px; max-width: 82px; border-width: 0px 1px 1px; border-style: solid; border-color: rgb(191, 191, 191); border-image: initial; text-align: right;\"><span>6<\/span><\/td><\/tr><tr><th style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 6px 3px 3px; width: 34px; border-width: 0px 1px 1px; border-style: solid; border-color: rgb(191, 191, 191); border-image: initial; text-align: left; background-color: rgb(245, 245, 245); color: rgba(0, 0, 0, 0.75); font-weight: 700; box-sizing: border-box;\"><span>3<\/span><\/th><td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 82px; min-width: 82px; max-width: 82px; border-width: 0px 1px 1px; border-style: solid; border-color: rgb(191, 191, 191); border-image: initial; text-align: right;\"><span>7<\/span><\/td><td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 82px; min-width: 82px; max-width: 82px; border-width: 0px 1px 1px; border-style: solid; border-color: rgb(191, 191, 191); border-image: initial; text-align: right;\"><span>8<\/span><\/td><td style=\"text-overflow: ellipsis; font-family: Arial, sans-serif; font-size: 12px; overflow: hidden; padding: 3px; width: 82px; min-width: 82px; max-width: 82px; border-width: 0px 1px 1px; border-style: solid; border-color: rgb(191, 191, 191); border-image: initial; text-align: right;\"><span>9<\/span><\/td><\/tr><\/tbody><\/table><\/div><\/div><\/div><\/div><\/div><\/div><div  style = 'margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Note that .zip files are treated as folders since they could hold many files. As such, you have to specify the file you want even if there is only one of them as there is here.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>This also works for .gz and .tar files as well as .zip files and has been enabled for the following functions <\/span><\/div><ul  style = 'margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px; '><li  style = 'margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap; '><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/readtable.html\"><span style=' text-decoration: underline; font-family: monospace;'>readtable<\/span><\/a><\/li><li  style = 'margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap; '><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/readcell.html\"><span style=' font-family: monospace;'>readcell<\/span><\/a><\/li><li  style = 'margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap; '><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/readmatrix.html\"><span style=' font-family: monospace;'>readmatrix<\/span><\/a><\/li><li  style = 'margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap; '><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/readstruct.html\"><span style=' font-family: monospace;'>readstruct<\/span><\/a><\/li><li  style = 'margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap; '><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/readtimetable.html\"><span style=' font-family: monospace;'>readtimetable<\/span><\/a><\/li><li  style = 'margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap; '><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/readdictionary.html\"><span style=' font-family: monospace;'>readdictionary<\/span><\/a><\/li><li  style = 'margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap; '><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/readlines.html\"><span style=' font-family: monospace;'>readlines<\/span><\/a><\/li><li  style = 'margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap; '><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/ref\/readvars.html\"><span style=' font-family: monospace;'>readvars<\/span><\/a><\/li><\/ul><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>This functionality has been requested by many users so I hope that we've made them happy.<\/span><\/div><h2  style = 'margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span>What are your favorite new features?<\/span><\/h2><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>This has been a long post and earlier drafts were even longer! It's difficult to decide what <\/span><span style=' font-weight: bold;'>not<\/span><span> to mention in posts like this. Have I missed your favorite new feature in this overview? If so, let me know what it is in the comments section. If you haven't had chance to look at all the details yourself yet, please head over to <\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/release-notes.html\"><span>the release notes<\/span><\/a><span> and dive in<\/span><\/div>\r\n<\/div><script type=\"text\/javascript\">var css = '.eoOutputWrapper { width: calc(90vw - 10px) !important; } \/* Styling that is common to warnings and errors is in diagnosticOutput.css *\/.embeddedOutputsErrorElement {    min-height: 18px;    max-height: 550px;} .embeddedOutputsErrorElement .diagnosticMessage-errorType {    overflow: auto;} .embeddedOutputsErrorElement.activeOutput .eoOutputContent {    user-select: text;    -webkit-user-select: text;} .embeddedOutputsErrorElement.activeOutput .eoOutputContent button {    user-select: none;    -webkit-user-select: none;} .embeddedOutputsErrorElement .eoOutputContent ::selection {} .embeddedOutputsErrorElement.inlineElement {} .embeddedOutputsErrorElement.rightPaneElement {} \/* Styling that is common to warnings and errors is in diagnosticOutput.css *\/.embeddedOutputsWarningElement {    min-height: 18px;    max-height: 550px;} .embeddedOutputsWarningElement .diagnosticMessage-warningType {    overflow: auto;} .embeddedOutputsWarningElement.activeOutput .eoOutputContent {    user-select: text;    -webkit-user-select: text;} .embeddedOutputsWarningElement .eoOutputContent ::selection {} .embeddedOutputsWarningElement.inlineElement {} .embeddedOutputsWarningElement.rightPaneElement {} \/* Copyright 2015-2023 The MathWorks, Inc. *\/\/* In this file, styles are not scoped to rtcContainer since they could be in the Dojo Tooltip *\/.diagnosticMessage-wrapper {    font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;    font-size: 12px;} .diagnosticMessage-wrapper.diagnosticMessage-warningType {    \/*This fallback value will be used for appdesigner warnings*\/    color: var(--rtc-warning-output-color, var(--mw-color-matlabWarning));} .diagnosticMessage-wrapper.diagnosticMessage-warningType a {    \/*This fallback value will be used for appdesigner warnings*\/    color: var(--rtc-warning-output-color, var(--mw-color-matlabWarning));    text-decoration: underline;} .rtcThemeDefaultOverride .diagnosticMessage-wrapper.diagnosticMessage-warningType,.rtcThemeDefaultOverride .diagnosticMessage-wrapper.diagnosticMessage-warningType a {    color: var(--mw-color-matlabWarning) !important;} .diagnosticMessage-wrapper.diagnosticMessage-errorType {    \/*This fallback value will be used in appdesigner error tooltip text*\/    color: var(--rtc-error-output-color, var(--mw-color-matlabErrors));} .diagnosticMessage-wrapper.diagnosticMessage-errorType a {    \/*This fallback value will be used in appdesigner error tooltip text*\/    color: var(--rtc-error-output-color, var(--mw-color-matlabErrors));    text-decoration: underline;} .rtcThemeDefaultOverride .diagnosticMessage-wrapper.diagnosticMessage-errorType,.rtcThemeDefaultOverride .diagnosticMessage-wrapper.diagnosticMessage-errorType a {    color: var(--mw-color-matlabErrors) !important;} .diagnosticMessage-wrapper .diagnosticMessage-messagePart,.diagnosticMessage-wrapper .diagnosticMessage-causePart {    white-space: pre-wrap;} .diagnosticMessage-wrapper .diagnosticMessage-stackPart {    white-space: pre;} .embeddedOutputsTextElement,.embeddedOutputsVariableStringElement {    white-space: pre;    word-wrap:  initial;    min-height: 18px;    max-height: 550px;} .embeddedOutputsTextElement .textElement,.embeddedOutputsVariableStringElement .textElement {    overflow: auto;} .embeddedOutputsTextElement.activeOutput .eoOutputContent,.embeddedOutputsVariableStringElement.activeOutput .eoOutputContent {    user-select: text;    -webkit-user-select: text;} \/*embeddedOutputsTextElement has a different dom structure than embeddedOutputsVariableStringElement.Unlike variableString, the text output has both TEXT nodes and elements as children. Hence we needa selector for each.*\/.embeddedOutputsTextElement .eoOutputContent::selection,.embeddedOutputsTextElement .eoOutputContent ::selection,.embeddedOutputsVariableStringElement .eoOutputContent ::selection {} .textElement,.rtcDataTipElement .textElement {    padding-top: 2px;} .embeddedOutputsTextElement.inlineElement,.embeddedOutputsVariableStringElement.inlineElement {} .inlineElement .textElement {} .embeddedOutputsTextElement.rightPaneElement,.embeddedOutputsVariableStringElement.rightPaneElement {    min-height: 16px;} .rightPaneElement .textElement {    padding-top: 2px;    padding-left: 9px;} .embeddedOutputsVariableTableElement .ClientViewDiv  table tr {  height: 22px;  white-space: nowrap;} .embeddedOutputsVariableTableElement .ClientViewDiv  table tr td,.embeddedOutputsVariableTableElement .ClientViewDiv  table tr th {  background-color:white;  text-overflow: ellipsis;  font-family: Arial, sans-serif;  font-size: 12px;  overflow : hidden;} .embeddedOutputsVariableTableElement .ClientViewDiv  table tr span {  text-overflow: ellipsis;  padding: 3px;} .embeddedOutputsVariableTableElement .ClientViewDiv  table tr th {    color: rgba(0,0,0,0.5);  padding: 3px;  font-size: 9px;} \/* ClientDocument has a summary bar child that takes up 17px, this clashes with overflow on the view which allots space for scrollbars. On print preview, this causes headers from <thead> to overlap on subsequent pages. Displaying Document as flex renders summarybar and view in column format and fixes the issue g2788485 *\/.embeddedOutputsVariableTableElement .ClientDocument {  display: flex;  flex-direction: column;}'; 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\/2025\/05\/r2025aRelease_4-1.png\" class=\"img-responsive attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\" \/><\/div><p>As the first version following MathWorks' 40th anniversary in 2024, MATLAB R2025a is probably the biggest release I've ever experienced as both a user and a MathWorker. The breadth and depth of... <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/matlab\/2025\/05\/15\/matlab-r2025a-has-been-released-whats-new\/\">read more >><\/a><\/p>","protected":false},"author":176,"featured_media":3653,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[23,57,17,20,101,14,36],"tags":[],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/posts\/3674"}],"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=3674"}],"version-history":[{"count":2,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/posts\/3674\/revisions"}],"predecessor-version":[{"id":3680,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/posts\/3674\/revisions\/3680"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/media\/3653"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/media?parent=3674"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/categories?post=3674"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/tags?post=3674"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}