coder.isRowMajor - Determine whether the current function or variable uses row-major
layout - MATLAB ([original](https://in.mathworks.com/help/coder/ref/coder.isrowmajor.html)) ([raw](?raw))
Main Content
Determine whether the current function or variable uses row-major layout
Syntax
Description
coder.isRowMajor
resolves as true in the generated code if the current function uses row-major array layout. Use the function as the expression in control flow (if
, else
,switch
) statements.
coder.isRowMajor([arg](#d126e17717))
resolves as true if the current variable uses row-major array layout.
Examples
To query the array layout of a function at compile time, usecoder.isRowMajor
orcoder.isColumnMajor
. This query can be useful for specializing your generated code when it involves row-major and column-major functions. For example, consider this function:
function S = addMatrixRouted(A,B) if coder.isRowMajor %execute this code if row major S = addMatrix_OptimizedForRowMajor(A,B); elseif coder.isColumnMajor %execute this code if column major S = addMatrix_OptimizedForColumnMajor(A,B); end
The function addMatrixRouted
behaves differently depending on whether it uses row-major layout or column-major layout. The layout that the function uses, for example, can depend on whether it is called from a function that contains coder.rowMajor
orcoder.columnMajor
. WhenaddMatrixRouted
uses row-major layout, it calls theaddMatrix_OptimizedForRowMajor
function, which has efficient memory access for row-major data. When the function uses column-major layout, it calls a version of the addMatrix
function optimized for column-major data.
By using the query functions, the generated code foraddMatrixRouted
provides efficient memory access for either choice of array layout.
Consider the function foo
:
function foo coder.rowMajor; x = magic(3); if coder.isRowMajor(x) fprintf('This will always be displayed in generated code.\n'); else fprintf('This will never be displayed in generated code.\n'); end end
Generate code:
To run the MEX function, enter:
Input Arguments
Variable to query for array layout.
Example: coder.isRowMajor(x);
Limitations
- You cannot query the array layout of a structure field or property.
Tips
- Outside of code generation and simulation,
coder.isRowMajor
is always false. - If
coder.isRowMajor
always resolves to true for your code, other branches in theif
statement are ignored by the code generator. Otherwise, one instance of the current function is created for each array layout.
Extended Capabilities
Version History
Introduced in R2018a