MATLAB: Does Simulink coder change (subsytem and input) names

matlab codersimulink

When I codegen a Subsystem in a Simulink model, sometimes the names are changed in ways that don't make sense to me. Why does this happen? For example, if I have a Subsystem block called FooBar, the generated names of variables and such is FooBar*. If it is named Foo_Bar, the generated names are Foo_Bar0*. Why the 0? It isn't clear to me where this is coming from. Also, some inputs sometimes get changed. For example, an input named Baz, could be changed to y0. This makes scripting the builds challenging.

Best Answer

The appending of 0 (and other numbers) is done to prevent name conflicts. It seems I have multiple Foo_Bars in the model and only one FooBar. I didn't create the model, and am only focused on select sub-systems, so I didn't catch this. The name changes during code generation (Baz to y0) are still a mystery.