文档

coder.load

将编译时常量从mat文件或ASCII文件加载到调用者工作区

语法

S = code .load(文件名)
S = code .load(文件名,var1,…,varN)
S = code .load(filename,'-regexp',…,exprN)
S = code .load(文件名,'-ascii')
S = code .load(filename,'-mat')
S = code .load(文件名,'-mat',var1,…,varN)
S = code .load(文件名,“垫”,“正则表达式”,expr1,…,exprN)

描述

例子

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

  • 如果文件名是mat文件,那么coder.load将mat文件中的变量加载到结构数组中。

  • 如果文件名是ASCII码文件,那么coder.load将数据加载到双精度数组中。

年代= coder.load (文件名var1,…,varN只从mat文件中加载指定的变量文件名

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

年代= coder.load (文件名“ascii”对待文件名作为ASCII文件,而不管文件扩展名是什么。

年代= coder.load (文件名“垫”对待文件名作为mat文件,而不管文件扩展名是什么。

年代= coder.load (文件名“垫”var1,…,varN对待文件名作为mat文件,只从文件中加载指定的变量。

年代= coder.load (文件名“垫”“正则表达式”expr1,…,exprN对待文件名作为一个mat文件,只加载匹配指定正则表达式的变量。

例子

全部折叠

为函数生成代码edgeDetect1它给出了一个标准化的图像,返回一个图像,其中边缘是根据阈值检测的。edgeDetect1使用coder.load在编译时从mat文件加载边缘检测内核。

将Sobel边缘检测内核保存在mat文件中。

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

写函数edgeDetect1

函数edgeImage = edgeDetect1(originalImage, threshold)% # codegenassert(all(size(originalImage) <= [1024 1024]));断言(isa (originalImage之下,“双”));断言(isa(阈值,“双”));S = code .load(“sobel.mat”“k”);H = conv2(double(originalImage),S.k,“相同”);V = conv2(double(originalImage),S.k',“相同”);E =根号下(H。*H + V.*V); edgeImage = uint8((E > threshold) * 255);

为静态库创建代码生成配置对象。

CFG = code .config(“自由”);

生成的静态库edgeDetect1

codegen报告配置cfgedgeDetect1

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

为函数生成代码edgeDetect2它给出了一个标准化的图像,返回一个图像,其中边缘是根据阈值检测的。edgeDetect2使用coder.load在编译时从ASCII文件加载边缘检测内核。

将Sobel边缘检测内核保存在ASCII文件中。

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

写函数edgeDetect2

函数edgeImage = edgeDetect2(originalImage, threshold)% # codegenassert(all(size(originalImage) <= [1024 1024]));断言(isa (originalImage之下,“双”));断言(isa(阈值,“双”));K = code .load(“sobel.dat”);H = conv2(double(originalImage),k,“相同”);V = conv2(double(originalImage),k',“相同”);E =根号下(H。*H + V.*V); edgeImage = uint8((E > threshold) * 255);

为静态库创建代码生成配置对象。

CFG = code .config(“自由”);

生成的静态库edgeDetect2

codegen报告配置cfgedgeDetect2

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

输入参数

全部折叠

文件名称。文件名必须是编译时常数。

文件名可以包括文件扩展名和完整或部分路径。如果文件名没有延长线,负载查找名为filename.mat.如果文件名有其他分机吗.mat负载将文件作为ASCII数据处理。

ASCII文件必须包含一个矩形的数字表,每一行的元素数量相等。文件分隔符(每行元素之间的字符)可以是空格、逗号、分号或制表符。该文件可以包含MATLAB®注释(以百分号开头的行,).

例子:“myFile.mat”

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

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

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

例子:coder.load(“myFile。'-regexp', '^A')只加载名称以开头的变量一个

输出参数

全部折叠

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

如果文件名是ASCII码文件,年代m × n数组是否有类型.M是文件中的行数,n是每行值的数量。

限制

  • coder.load不支持加载对象。万博1manbetx

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

  • 输出年代必须是不带下标的结构或数组的名称。例如,S(i) = code .load('myFile.mat')是不允许的。

  • 你不能使用保存将工作区数据保存到用于代码生成的函数内的文件中。代码生成器不支持万博1manbetx保存函数。此外,你不能使用coder.extrinsic保存.在生成代码之前,您可以使用保存将工作区数据保存到文件中。

提示

  • coder.load在编译时加载数据,而不是在运行时。如果您正在为Simulink生成MEX代码或代码万博1manbetx®仿真,可以使用MATLAB函数负载加载运行时值。

  • 如果mat文件包含不受支持的构造,则使用万博1manbetxcoder.load (varN文件名,var1,…)仅加载受支持的结构。万博1manbetx

  • 中生成的代码MATLAB编码器™项目的代码生成器实践增量代码生成coder.load函数。当mat文件或ASCII文件使用时coder.load更改后,软件重新构建代码。

另请参阅

||

主题

在R2013a中引入

这个话题有用吗?