MATLAB R2026b is now out there. Listed below are my favourite enhancements.
Printed Referenced Fashions
In R2026b, you’ll discover a brand new Publish button within the Simulink toolstrip:
When publishing a mannequin, a brand new SLXP file is created. This file incorporates a precompiled, ready-to-run model of the mannequin. Because of this, fashions that reference a printed mannequin can initialize shortly by skipping rebuild checks and utilizing the precompiled model within the SLXP file.
Publishing may also be executed programmatically utilizing publishmodel.
A Mannequin block that references a printed mannequin shows a brand new badge:
MATLAB Challenge definition file
This enhancement just isn’t particular to Simulink, however I anticipate many Simulink customers to love it.
Earlier than R2026b, MATLAB initiatives saved mission definition data in lots of XML recordsdata in a assets folder. This made the metadata tough to examine and added noise to source-control diffs. In R2026b, you’ll be able to as an alternative retailer this data in a single, human-readable matlab.toml file on the high degree of the mission.
That is managed within the MATLAB settings:
If you wish to convert an current mission, you’ll be able to execute:
Save Simulink Knowledge Dictionaries in JSON format
Earlier than R2026b, Simulink Knowledge Dictionary recordsdata have been saved in a binary format. In R2026b, we’re including an choice to save lots of information dictionaries as an uncompressed textual content file in a JSON format. Many customers might not discover a distinction of their day-to-day workflows, however for groups utilizing Git, this selection ought to assist preserve repository sizes manageable and simplify diff workflows.
The information dictionary format can be managed from the MATLAB settings:
Simulink comparability outcomes out there on the MATLAB Command Immediate
When calling visdiff on two Simulink fashions, the output now incorporates a desk with all of the adjustments.
outcome = visdiff(‘vdp1.slx’,‘vdp2.slx’);
outcome.Consequence.Matches
ans = 14×6 desk
| |
LeftPath |
RightPath |
ChangeType |
Particulars |
LeftObject |
RightObject |
| 1 |
“Simulink” |
“Simulink” |
“unchanged” |
1×1 struct |
1×1 SimulinkObject (mannequin) |
1×1 SimulinkObject (mannequin) |
| 2 |
[“Simulink”, “Scope”] |
<lacking> |
“deleted” |
1×1 struct |
1×1 SimulinkObject (Scope Block) |
<lacking> |
| 3 |
<lacking> |
[“Simulink”, “Out3”] |
“inserted” |
1×1 struct |
<lacking> |
1×1 SimulinkObject (Outport Block) |
| 4 |
[“Simulink”, “Mu”] |
[“Simulink”, “Mu”] |
“modified” |
1×1 struct |
1×1 SimulinkObject (SubSystem Block) |
1×1 SimulinkObject (SubSystem Block) |
| 5 |
[“Simulink”, “Product:1 -> Mu:1”] |
[“Simulink”, “Product:1 -> 2 Destinations”] |
“modified” |
1×1 struct |
<lacking> |
<lacking> |
| 6 |
<lacking> |
[“Simulink”, “Product:1 -> 2 Destinations”, “Branch -> Mu:1”] |
“inserted” |
1×1 struct |
<lacking> |
1×1 SimulinkObject (line) |
| 7 |
<lacking> |
[“Simulink”, “Product:1 -> 2 Destinations”, “Branch -> Out3:1”] |
“inserted” |
1×1 struct |
<lacking> |
1×1 SimulinkObject (line) |
| 8 |
[“Simulink”, “Product:1 -> Mu:1”, “Product:1 -> Mu:1”] |
[“Simulink”, “Product:1 -> 2 Destinations”, “Product:1 -> Branch”] |
“modified” |
1×1 struct |
1×1 SimulinkObject (line) |
1×1 SimulinkObject (line) |
| 9 |
[“Simulink”, “x1:x1 -> 4 Destinations”] |
[“Simulink”, “x1:x1 -> 3 Destinations”] |
“modified” |
1×1 struct |
<lacking> |
<lacking> |
| 10 |
[“Simulink”, “x1:x1 -> 4 Destinations”, “Branch -> Branch”] |
<lacking> |
“deleted” |
1×1 struct |
1×1 SimulinkObject (line) |
<lacking> |
| 11 |
[“Simulink”, “x1:x1 -> 4 Destinations”, “Branch -> Scope:1”] |
<lacking> |
“deleted” |
1×1 struct |
1×1 SimulinkObject (line) |
<lacking> |
| 12 |
[“Simulink”, “x2:x2 -> 4 Destinations”] |
[“Simulink”, “x2:x2 -> 3 Destinations”] |
“modified” |
1×1 struct |
<lacking> |
<lacking> |
| 13 |
[“Simulink”, “x2:x2 -> 4 Destinations”, “Branch -> Branch”] |
<lacking> |
“deleted” |
1×1 struct |
1×1 SimulinkObject (line) |
<lacking> |
| 14 |
[“Simulink”, “x2:x2 -> 4 Destinations”, “Branch -> Scope:2”] |
<lacking> |
“deleted” |
1×1 struct |
1×1 SimulinkObject (line) |
<lacking> |
That is particularly helpful when utilizing a coding agent related to MATLAB via the MCP server. Right here is an instance the place I requested Codex CLI to summarize the above adjustments:
Tabs in Simulation Knowledge Inspector
The Simulation Knowledge Inspector now has tabs, making it simpler to arrange and examine giant variety of alerts.
Customized Simulink Solvers
It’s now doable to jot down your personal solver for Simulink fashions. This will doubtlessly enhance velocity and/or accuracy when coping with specialised units of equations that may very well be solved extra effectively utilizing particular solver algorithms not included with Simulink.
This function can be helpful if you wish to impress your folks and colleagues by having your title seem within the listing of solvers out there in Simulink!
Now it is your flip
Undergo the Simulink launch notes and tell us your favourite enhancements and which matters you want to see lined in additional element on this weblog.
{ let css=”._richTextNode {white-space: break-spaces;} /* Copyright 2017-2025 The MathWorks, Inc. */.embeddedOutputsVariableTableElement .ClientViewDiv desk tr { peak: 22px; white-space: nowrap;} .embeddedOutputsVariableTableElement .ClientViewDiv desk tr td,.embeddedOutputsVariableTableElement .ClientViewDiv desk tr th { background-color:white; text-overflow: ellipsis; font-family: Arial, sans-serif; overflow : hidden;} .embeddedOutputsVariableTableElement .ClientViewDiv desk tr span { text-overflow: ellipsis; padding: 3px;} .embeddedOutputsVariableTableElement .ClientViewDiv desk tr th { coloration: rgba(0,0,0,0.5); padding: 3px; font-size: 9px;} /* ClientDocument has a abstract bar baby that takes up 17px, this clashes with overflow on the view which allots house for scrollbars. On print preview, this causes headers from