主要内容

coder.columnMajor

为函数或类指定列主数组布局

描述

例子

coder.columnMajor为生成的代码中当前函数使用的数据指定列-主数组布局。在类构造函数中,coder.columnMajor为类使用的数据指定列主布局。

请注意

默认情况下,代码生成使用列主数组布局。

例子

全部折叠

通过插入为函数指定列-主数组布局coder.columnMajor进入函数体。

假设myFunction是代码的顶层函数。应用程序要求使用列主数组布局执行矩阵加法,使用行主数组布局执行矩阵乘法。

函数S = myFunction (A, B)% # codegen%检查以确保输入是有效的如果大小(1)~ =大小(B, 1) | |大小(,2)~ =大小(B, 2) disp (“矩阵的大小必须相同。”返回结束使两个矩阵对称B = B * B ';一个= *”;%添加矩阵S = addMatrix (A, B);结束

写一个函数为矩阵加法调用addMatrix.指定列为主addMatrix通过使用coder.columnMajor

函数S = addMatrix (A, B)% # codegenS = 0(大小(A));coder.columnMajor;%指定列-主数组布局S = a + b;结束

生成的代码myFunction.使用codegen命令。

codegenmyFunctionarg游戏{的(10、20)的(10、20)}配置:自由-launchreport-rowmajor

因为codegen -rowmajor选项,矩阵乘法myFunction使用行布局。但是,生成的代码addMatrix使用列主数组布局,因为coder.columnMajor调用。

提示

  • 默认情况下,代码生成器使用列主数组布局。

  • 函数中数组布局的说明取代了用codegen命令。例如,如果函数喷火包含coder.columnMajor,您可以使用以下命令生成代码:

    codegen喷火-rowmajor

    然后生成的代码仍然使用列主布局。

  • 从列主函数内部调用的其他函数继承了列主规范。但是,如果一个被调用的函数有它自己的不同coder.rowMajor调用时,代码生成器将相应地更改数组布局。如果行主函数和列主函数调用相同的函数,而该函数没有自己的数组布局规范,则代码生成器将生成函数的行主版本和列主版本。

  • coder.columnMajor在代码生成和模拟之外被忽略。

扩展功能

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

GPU的代码生成
使用GPU Coder™为NVIDIA®GPU生成CUDA®代码。

介绍了R2018a