Code Generation for Constants in Structures and Arrays
R2026bThe code generator does not recognize constant structure fields or array elements in the following cases:
In the following code, the code generator recognizes that the structure fields s.a and s.b are constants.
function y = mystruct()
s.a = 3;
s.b = 5;
y = zeros(s.a,s.b);
If any structure field is assigned inside a control construct, the code generator does not recognize the constant fields. This limitation also applies to arrays with constant elements. Consider the following code:
function y = mystruct(x) s.a = 3; if x > 1 s.b = 4; else s.b = 5; end y = zeros(s.a,s.b);
The code generator does not recognize that s.a and s.b are constant. If variable-sizing is enabled, y is treated as a variable-size array. If variable-sizing is disabled, the code generator reports an error.
In the following code, the code generator recognizes that a(1) is constant.
function y = myarray()
a = zeros(1,3);
a(1) = 20;
y = coder.const(a(1));In the following code, because a(1) is assigned using non-scalar indexing, the code generator does not recognize that a(1) is constant.
function y = myarray()
a = zeros(1,3);
a(1:2) = 20;
y = coder.const(a(1));For an output structure that has both constant and nonconstant fields, the code generator does not recognize the constant fields. This limitation also applies to arrays that have constant and nonconstant elements. Consider the following code:
function y = mystruct_out(x) s = create_structure(x); y = coder.const(s.a); function s = create_structure(x) s.a = 10; s.b = x;
Because create_structure returns a structure s that has one constant field and one nonconstant field, the code generator does not recognize that s.a is constant. The coder.const call fails because s.a is not constant.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Website auswählen
Wählen Sie eine Website aus, um übersetzte Inhalte (sofern verfügbar) sowie lokale Veranstaltungen und Angebote anzuzeigen. Auf der Grundlage Ihres Standorts empfehlen wir Ihnen die folgende Auswahl: .
Sie können auch eine Website aus der folgenden Liste auswählen:
So erhalten Sie die bestmögliche Leistung auf der Website
Wählen Sie für die bestmögliche Website-Leistung die Website für China (auf Chinesisch oder Englisch). Andere landesspezifische Websites von MathWorks sind für Besuche von Ihrem Standort aus nicht optimiert.
Amerika
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)