文档

coder.load

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

描述

例子

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

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

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

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-file,只加载与指定正则表达式匹配的变量。

例子

全部折叠

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

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

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

编写的函数edgeDetect1

函数edgeImage = edgeDetect1(originalImage, threshold)% # codegenassert(all(size(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, threshold)% # codegenassert(all(size(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在编译时而不是运行时加载数据。如果您正在为Simulink生成MEX代码或代码金宝app®仿真,可以使用MATLAB函数负载加载运行时值。

  • 如果mat文件包含不支持的结构,请使用金宝appcoder.load (varN文件名,var1,…)只加载受支持的构造。金宝app

  • 如果你在MATLAB编码器™项目中,代码生成器实践增量代码生成coder.load函数。当MAT-file或ASCII文件使用coder.load改变后,软件会重新构建代码。

另请参阅

||

主题

介绍了R2013a