主要内容

coder.isRowMajor

确定当前函数或变量使用行布局

描述

例子

coder.isRowMajor解析为真在生成的代码中如果当前函数使用行阵列布局。在控制流中使用函数的表达式(如果,其他的,开关)语句。

例子

coder.isRowMajor (参数)解析为真,如果当前变量使用行数组布局。

例子

全部折叠

查询一个函数在编译时的阵列布局,使用coder.isRowMajorcoder.isColumnMajor。这个查询时生成的代码可以是有用的专业涉及行和列为主的功能。例如,考虑这个函数:

函数S = addMatrixRouted (A, B)如果coder.isRowMajor%如果行主要执行该代码S = addMatrix_OptimizedForRowMajor (A, B);elseifcoder.isColumnMajor%如果列主要执行该代码S = addMatrix_OptimizedForColumnMajor (A, B);结束

这个函数addMatrixRouted表现不同取决于它使用行布局或列为主的布局。布局函数使用,例如,可以从一个函数取决于它被称为包含coder.rowMajorcoder.columnMajor。当addMatrixRouted使用行布局,它调用addMatrix_OptimizedForRowMajor行数据的功能,高效的内存访问。当函数使用列为主的布局时,它调用的一个版本addMatrix函数列为主的数据优化。

通过使用查询功能,生成的代码addMatrixRouted提供高效的内存访问数组要么选择布局。

考虑到功能喷火:

函数foo coder.rowMajor;x =魔法(3);如果coder.isRowMajor (x)流(“这总是会显示在生成的代码中。\ n”);其他的流(这将永远不会显示在生成的代码中。\ n”);结束结束

生成代码:

codegen喷火

墨西哥人的功能运行,输入:

foo_mex

输入参数

全部折叠

数组变量查询布局。

例子:coder.isRowMajor (x);

限制

  • 你不能查询的阵列布局结构域或属性。

提示

  • 之外的代码生成和仿真,coder.isRowMajor总是错误的。

  • 如果coder.isRowMajor总是为你的代码解析为真,其他分支如果由代码生成器声明将被忽略。否则,当前函数的一个实例是为每个数组创建布局。

扩展功能

C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。

GPU的代码生成
生成NVIDIA的CUDA®代码®GPU使用GPU编码器™。

版本历史

介绍了R2018a