主要内容

coder.load

从MAT-file加载编译时常量或ASCII文件

描述

例子

年代= coder.load (文件名)加载编译时常量的文件名

  • 如果文件名是一个MAT-file呢coder.load变量从MAT-file装入一个结构数组。

  • 如果文件名是一个ASCII文件呢coder.load将数据加载到一个双精度数组。

coder.load在代码生成时加载数据,也称为编译时。如果你改变的内容文件名在您生成代码之后,变化不是反映在生成的代码的行为。

年代= coder.load (文件名,var1,…, varN)从MAT-file只加载指定的变量文件名

年代= coder.load (文件名,“正则表达式”,expr1,…, exprN)只加载变量指定的正则表达式相匹配。

年代= coder.load (文件名,“ascii”)对待文件名作为一个ASCII文件,无论文件扩展名。

年代= coder.load (文件名,“垫”)对待文件名MAT-file,不管文件扩展名。

年代= coder.load (文件名,“垫”,var1,…, varN)对待文件名作为一个MAT-file从文件和加载指定的变量。

年代= coder.load (文件名,“垫”,“正则表达式”,expr1,…, exprN)对待文件名MAT-file和负载匹配的变量指定的正则表达式。

例子

全部折叠

为一个函数生成代码edgeDetect1给定一个归一化图像,返回一个图像的边缘检测阈值。edgeDetect1使用coder.load加载内核在编译时从MAT-file边缘检测。

保存Sobel边缘检测在MAT-file内核。

k = [1 2 1;0 0 0;1 2 1];保存sobel.matk

编写的函数edgeDetect1

函数edgeImage = edgeDetect1 (originalImage之下,阈值)% # codegen断言(所有(大小(originalImage之下)< = 1024 [1024]));断言(isa (originalImage之下,“双”));断言(isa(阈值,“双”));S = coder.load (“sobel.mat”,“k”);H = conv2(双(originalImage之下),S.k,“相同”);V = conv2(双(originalImage之下),S.k ',“相同”);E =√H。*H + V.*V); edgeImage = uint8((E > threshold) * 255);

创建一个静态库的代码生成配置对象。

cfg = coder.config (“自由”);

生成一个静态库edgeDetect1

codegen报告配置cfgedgeDetect1

codegen生成的C代码codegen \ lib \ edgeDetect1文件夹中。

为一个函数生成代码edgeDetect2给定一个归一化图像,返回一个图像的边缘检测阈值。edgeDetect2使用coder.load加载内核边缘检测在编译时从一个ASCII文件。

Sobel边缘检测内核保存在一个ASCII文件。

k = [1 2 1;0 0 0;1 2 1];保存sobel.datk美国信息交换标准代码

编写的函数edgeDetect2

函数edgeImage = edgeDetect2 (originalImage之下,阈值)% # codegen断言(所有(大小(originalImage之下)< = 1024 [1024]));断言(isa (originalImage之下,“双”));断言(isa(阈值,“双”));k = coder.load (“sobel.dat”);H = conv2(双(originalImage之下),k,“相同”);V = conv2(双(originalImage之下),k’,“相同”);E =√H。*H + V.*V); edgeImage = uint8((E > threshold) * 255);

创建一个静态库的代码生成配置对象。

cfg = coder.config (“自由”);

生成一个静态库edgeDetect2

codegen报告配置cfgedgeDetect2

codegen生成的C代码codegen \ lib \ edgeDetect2文件夹中。

输入参数

全部折叠

文件的名称。文件名必须是一个编译时常量。

文件名可以包括文件扩展名和全部或部分路径。如果文件名没有扩展,负载查找一个文件命名filename.mat。如果文件名以外的一个扩展吗.mat,负载会将该文件视为ASCII数据。

ASCII文件必须包含一个矩形表的数字,与同等数量的元素在每一行。文件分隔符(在每一行元素之间的字符)可以是一个空白,逗号,分号或制表符。该文件可以包含MATLAB®评论(从百分之一开始标志,行%)。

例子:“myFile.mat”

变量的名字,指定为一个或多个特征向量或字符串标量。每个变量名称必须是一个编译时常量。使用*通配符来匹配模式。

例子:coder.load (' myFile.mat ', ' * ')加载文件中所有变量的名字开始一个

正则表达式表明哪些变量加载指定为一个或多个特征向量或字符串标量。每一个正则表达式必须是一个编译时常量。

例子:coder.load (“myFile。席”、“正则表达式”、“^”)只加载变量的名字一个

输出参数

全部折叠

如果文件名是一个MAT-file,年代是一个结构数组。

如果文件名是一个ASCII文件,年代是一个m×n数组类型的吗。m文件中的行数和n值的数量在一条线。

限制

  • 参数coder.load必须在编译时常量。

  • 输出年代必须是一个结构或数组的名字没有任何加下标。例如,(我)= coder.load (“myFile.mat”)是不允许的。

  • 你不能使用保存保存工作空间数据到一个文件在一个函数用于代码生成。代码生成器不支持的金宝app保存函数。此外,您不能使用coder.extrinsic保存。生成代码之前,您可以使用保存将工作区数据保存到一个文件中。

提示

  • coder.load(文件名)在编译时加载数据,而不是在运行时。如果你改变的内容文件名在您生成代码之后,变化不是反映在生成的代码的行为。如果你是为仿真软件生成墨西哥人代码或代码金宝app®模拟时,您可以使用MATLAB函数负载加载运行时的值。

  • 如果MAT-file包含支持结构,使用金宝appcoder.load (varN文件名,var1,…)只加载支持结构。金宝app

  • 如果您生成代码MATLAB编码器™项目,代码生成器实践增量的代码生成coder.load函数。当MAT-file或ASCII文件使用coder.load变化,重建的软件代码。

扩展功能

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

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

版本历史

介绍了R2013a