主要内容

端到端部署MATLAB函数

警告

构建和打包MATLAB的选项®Excel函数向导中的代码®外接程序将在未来的版本中删除。若要创建Excel外接程序,请使用库的编译器应用程序。

不建议从R2020a开始

如果您仍在开发一个尚未准备好部署的MATLAB函数,您可能会发现这个示例是一个合适的使用介绍MATLAB编译器™用于Excel外接程序。

函数向导允许您迭代地测试、开发和调试MATLAB函数。它通过从函数向导控制面板调用MATLAB来做到这一点。

在交互环境中开发函数可以确保它在部署到更大规模的应用程序之前以预期的方式工作。通常,这些应用程序是由Excel Developer使用企业语言编写的微软®Visual Basic®

与魔方示例类似,原型化和调试示例开发了一个名为mymagic,它包装了一个MATLAB函数,魔法,它计算一个魔方,一个具有单一多维矩阵输出的函数。

如果你的MATLAB函数是准备部署你已经知道了使用部署工具构建外接程序和COM组件,请参阅执行函数和创建宏

主要工作MATLAB程序员

任务 参考
1.审查MATLAB编译器用于Excel外接程序的先决条件,如果您还没有这样做的话。 MATLAB编译器为Microsoft Excel插件先决条件
2.准备通过复制示例文件来运行示例。 文件复制
3.测试要部署为外接程序或COM组件的MATLAB函数。 mymagic测试
4.安装功能向导。 函数向导的安装
5.启动函数向导。 功能向导
6.选择原型和调试工作流。 建模和调试MATLAB函数的工作流选择
7.定义要创建原型的新MATLAB函数,方法是将其添加到函数向导中并建立输入和输出范围。 新的MATLAB函数定义
8.通过使用函数向导执行MATLAB函数来测试它。 MATLAB函数执行
9.如果需要,使用MATLAB和函数向导对MATLAB函数进行原型和调试。 MATLAB函数原型设计与调试
10.创建外接程序和COM组件,以及宏,使用函数向导调用MATLAB和部署工具。 使用函数向导创建microsoftexcel外接程序和宏
11.从新创建的组件执行函数,以确保函数的行为与测试时相同。 从已部署组件执行函数
12.执行使用“功能向导”创建的宏。 宏执行
13.使用函数向导来调用MATLAB和部署工具打包可部署的外接程序和宏。 使用功能向导的microsoftexcel外接程序和宏打包
14.可选地检查或修改微软Visual Basic用COM组件生成的代码。可选地,将创建的宏附加到GUI按钮。 Microsoft Visual Basic Code Access(可选高级任务)

函数向导能为我做什么?

函数向导允许您传递Microsoft Excel(Excel 2000或更高版本)工作表的值到已编译的MATLAB模型,然后将模型输出返回到工作表中的单元格或单元格范围。

函数向导为Excel工作表提供了一个直观的界面。你不需要之前的知识微软Visual Basic应用程序(VBA)编程。

“功能向导”反映您在工作表中所做的任何更改,例如范围选择。您还可以使用函数向导来控制数据从MATLAB函数到工作表的位置和输出。

请注意

函数向导目前不支持MATLAB金宝app稀疏的,复杂的数据类型。

文件复制

所有MATLAB编译器Microsoft Excel例子存在于matlabroot\ \工具箱\ matlabxl \示例.下表按文件夹标识了示例:

关于……的文件 在文件夹中查找示例代码… 示例文档参见…
魔方例子 xlmagic 分发外接程序并集成到Microsoft Excel
变长参数示例 xlmulti 创建宏从MATLAB函数与多个参数
调用编译过的MATLAB函数Microsoft Excel xlbasic 在MATLAB中创建插件
光谱分析实例 xlspectral 建立和集成光谱分析功能

mymagic测试

在本例中,测试一个MATLAB文件(mymagic.m),包含预定义的MATLAB函数魔法.您测试是为了在函数准备部署时与它的结果进行比较。

  1. 在MATLAB中定位mymagic.m.看到文件复制例子的位置。文件内容如下:

    函数Y = mymagic(x)x大小的魔法方块。% Y = MYMAGIC(X)返回一个大小为X的魔方。此文件被用作MATLAB编译器产品的示例。版权所有The MathWorks, Inc.Y =魔术(x)

  2. 在MATLAB命令提示符下,输入mymagic (5).查看结果输出,如下所示:

    17 24 1 8 15
    23 5 7 14 16
    4 6 13 20 22
    10 12 19 21 3
    11 18 25 2 9

函数向导的安装

在使用“功能向导”之前,必须首先将其安装为可从Microsoft Excel

安装“功能向导”后,条目MATLAB函数显示为可用的Microsoft Excel插件按钮。

使用微软Excel2010年或更新

  1. 单击文件选项卡。

  2. 在左侧导航窗格中,选择选项

  3. 在“Excel选项”对话框的左侧导航窗格中,选择插件

  4. 在“管理”下拉菜单中,选择Excel插件,并单击

  5. 在“加载项”对话框中,单击浏览

  6. 浏览到matlabroot/工具箱/ matlabxl / matlabxl /,并选择FunctionWizard2007.xlam.点击好吧

  7. 在Excel外接程序对话框中,验证条目是否MATLAB编译函数向导被选中。点击好吧

  8. 的Home选项卡Microsoft Excel功能区包含“功能向导”磁贴。

使用Excel2007

  1. 开始Microsoft Excel

  2. 单击办公室按钮()及选择Excel选项

  3. 2 .在“Excel选项”对话框的左侧窗格中,单击插件

  4. 在“Excel选项”对话框的右侧窗格中,选择Excel插件管理下拉框。

  5. 点击

  6. 点击浏览.导航到matlabroot\ \ matlabxl \ matlabxl \工具箱并选择FunctionWizard2007.xlam.点击好吧

  7. 在Excel外接程序对话框中,验证条目是否MATLAB编译函数向导被选中。点击好吧

使用Excel2003

  1. 选择工具>插件从Excel主菜单。

  2. 如果之前安装了“功能向导”,MATLAB编译函数向导出现在列表中。选中目标项,单击好吧

    如果之前没有安装“功能向导”,请单击浏览并导航到matlabroot\ \ matlabxl \ matlabxl工具箱文件夹中。选择FunctionWizard.xla.点击好吧

功能向导

以下列方式之一启动函数向导。向导初始化后,将显示“功能向导起始页”对话框。

使用Excel2007年或更新的版本Excel

Microsoft Excel,在微软办公软件缎带,在首页选项卡上,选择函数向导

的主页标签微软办公室带功能向导安装

您也可以从“文件”选项卡访问“功能向导”。

  1. 选择文件>选项>插件从Excel主菜单。

  2. 选择函数向导

“功能向导开始页”对话框

原型和调试的工作流选择MATLAB功能

当你有安装而且开始在功能向导中,执行以下操作。

  1. 在“功能向导起始页”对话框中,选择我有一个或多个MATLAB函数,我想在工作簿中使用(需要MATLAB安装).的新项目默认为“Option”。中输入有意义的项目名称项目名称领域,如testmymagic例如。

    提示

    的惟一名称会对一些客户有所帮助类名(默认是Class1),并指定一个版本用于源代码控制目的的编号。

  2. 点击好吧.控件将显示“功能向导控制面板”添加函数按钮启用。

关于项目文件

在使用函数向导时,请记住关于项目文件的以下信息:

  • 功能向导创建的项目文件与部署工具创建和使用的项目文件(deploytool).

  • 当您打开第一个新项目时,“功能向导”提示您为项目文件指定一个位置。项目文件将自动保存到此位置,将来可以通过部署工具或功能向导打开。

  • 如果您之前使用“功能向导”构建了一个组件,向导将提示您加载该组件。

戒烟的MATLAB由函数向导调用的会话

避免手动终止函数向导调用的MATLAB会话。这样做可以阻止您从Excel会话中使用向导的matlab相关特性。如果要退出远程调用的MATLAB会话,请重新启动Excel。

MATLAB函数定义

  1. 将要部署的函数添加到功能向导中。点击添加在“功能向导控制面板”的“设置功能”区域。弹出“新建MATLAB函数”对话框。

  2. 浏览以定位您的MATLAB函数。选择目标功能,单击开放

  3. 2 .在“新建MATLAB函数”对话框中,单击添加.弹出“函数属性”对话框。

    提示

    函数语法和帮助区域中的“功能属性”对话框中,显示第一个帮助文本行(有时称为H1线)的MATLAB函数。当向最终用户部署新的或不熟悉的MATLAB函数时,在“函数属性”对话框中显示这些注释会很有帮助。

  4. 按如下方式定义输入参数属性。

    1. 输入选项卡上,单击设置输入数据.的输入数据n对话框。

    2. 指定一个范围价值通过选择适当的选项并输入值。

      谨慎

      避免使用方向键选择范围。如果您必须使用方向键来选择范围,请从微软网站应用必要的修复:https://mskb.pki金宝搏官方网站solutions.com/kb/291110

    3. 点击完成

    提示

    要指定如何MATLAB编译器有关Excel外接程序处理空白单元格(或不包含数据的单元格),请参见空单元格值控制

  5. 如下所示定义输出参数属性。

    1. 输出选项卡上,单击设置输出数据.的输出数据y对话框,其中x要定义其属性的输出变量的名称。

      提示

      你也可以指定MATLAB编译器自动调整大小转置或以日期格式输出资料(输出日期).为此,在参数属性中选择适当的选项y对话框。

    2. 指定一个范围.或者,在Excel工作表上选择一系列单元格;该范围将为您输入范围字段。

      谨慎

      避免使用方向键选择范围。如果您必须使用方向键来选择范围,请从微软网站应用必要的修复:https://mskb.pki金宝搏官方网站solutions.com/kb/291110

    3. 选择自动调整大小如果尚未选中。

    4. 点击完成的参数属性y对话框。

    5. 点击完成在“函数属性”对话框中。mymagic现在出现在积极的功能“功能向导控制面板”列表。

空单元格值控制

你可以指定如何MATLAB编译器处理空单元格,允许您分配未定义或未表示的(例如)的数据值。

要指定如何处理空单元格,请执行以下操作。

  1. 点击选项的输入数据N对话框。

    打开“输入转换选项”对话框。

  2. 单击将缺失数据视为下拉框。

  3. 指定或NaN(非数字),这取决于您想如何处理空单元格。

使用结构数组

要为结构数组中的字段分配范围,请执行以下操作:

  1. 如果还没有这样做,请选择这是一个MATLAB结构数组参数的输入数据n对话框,然后单击好吧

    结构数组参数的输入数据n对话框。

  2. 函数向导支持输入和输出的向量和二维结构数金宝app组,可以按元素或平面组织。

    在结构数组参数的输入数据中n对话框中,执行以下操作:

    1. 在“结构数组组织”区域,选择其中之一逐元素组织平面组织

    2. 点击添加字段为每个结构数组参数添加字段。打开“结构数组参数字段”对话框。

  3. 在“参数字段”对话框中,执行以下操作:

    1. 的名字字段,定义字段名。的的名字您指定的必须匹配MATLAB函数中结构数组的字段名。

    2. 指定范围对于这个领域。

      谨慎

      避免使用方向键选择范围。如果您必须使用方向键来选择范围,请从微软网站应用必要的修复:https://mskb.pki金宝搏官方网站solutions.com/kb/291110

    3. 点击完成

如何支持结构数组。金宝appMATLAB编译器金宝app支持一维和二维MATLAB结构数组。

该产品将传递的数据转换为结构数组中的元素组织平面组织.看到MATLAB编程基础以获取有关所有MATLAB数据类型(包括结构)的更多信息。

部署结构数组作为输入和输出。如果您是一名MATLAB程序员,并希望部署一个以结构数组作为输入或输出参数的MATLAB函数,请构建Microsoft Excel宏使用函数向导和传递他们(与Excel插件和COM组件)给最终用户。如果你不能这样做,让你的最终用户知道:

  • 哪些参数是结构数组

  • 结构数组的字段名

使用宏和结构数组。的宏生成特性MATLAB编译器for Excel外接程序使用结构数组作为输入或输出参数。看到宏创建如果你有一个MATLAB函数,你就可以部署了。看到使用函数向导创建microsoftexcel外接程序和宏如果您正在使用函数向导从头创建MATLAB函数。看到选择功能部署流程有关这两个工作流的更多信息。

MATLAB功能原型和调试

使用函数向导交互原型和调试MATLAB函数。

mymagic调用预先编写的MATLAB魔法函数的原型化和调试特性,但没有提供如何使用的说明性示例MATLAB编译器

下面是如何使用此特性的示例myprimes,一个包含多行代码的函数。

使用myprimes进行原型化和调试

例如,假设您正在对使用该方程的代码进行原型化P = myprimes(n).这个方程返回一个由小于等于的素数组成的行向量n(质数除了1和质数本身外没有因数)。

您的代码使用P = myprimes(n)如下:

函数[p] = myprimes(n)如果长度(n) ~ = 1,错误('N必须是标量');结束如果N < 2, p = 0 (1,0);返回结束P = 1:2:n;Q =长度(p);P (1) = 2;K = 3:2:平方根(n)如果P ((k*k+1)/2) P (((k*k+1)/2):k:q) = 0;结束结束P = (P (P >0));

在设计代码时,您希望处理各种用例。例如,您希望试验可能将列向量值分配给输出变量的场景p( (myprimes如前所述,只返回行向量)。你需要遵循以下的工作流程:

  1. 设置断点myprimes一开始如果语句,使用GUI或dbstop例如。

  2. 在“功能向导控制面板”的“执行功能”区域,单击执行.执行将在先前设置的断点处停止。注意的值p.逐步通过和调试您的代码,因为您通常会使用MATLAB编辑器。

有关调试MATLAB代码的更多信息,请参见调试MATLAB代码文件

函数执行MATLAB

通过在MATLAB中执行测试可部署的MATLAB函数:

  1. 在“功能向导控制面板”的“执行功能”区域中,选择在MATLAB中执行MATLAB函数

  2. 点击执行.在Excel中,魔方函数执行,产生类似于下面的结果。

微软Excel使用函数向导创建外接程序和宏

功能向导可以自动创建可部署的Microsoft Excel外接程序和宏。若要以这种方式创建外接程序,请使用以下过程之一。

创建外接程序并关联Excel

创建可部署外接程序和相关的Excel宏:

  1. 在“功能向导控制面板”对话框的“创建组件”区域,选择创建Excel外接程序组件和Excel宏

  2. 输入mymagic宏的名字字段。

  3. 控件选择要存储宏的位置存储宏下拉框。

  4. 中输入宏功能的简要描述描述字段。

  5. 点击创建来构建外接程序(以及底层COM组件)和相关宏。将出现“部署工具构建”对话框,指示外接程序和COM组件编译(构建)的状态。

    构建对话框

只创建COM组件或宏而不创建外接程序

要在不创建Excel外接程序的情况下创建COM组件或宏,请执行以下操作

  1. 在“功能向导控制面板”对话框的“创建组件”区域中,选择其中之一仅限MATLAB Excel插件组件仅创建Excel宏

  2. 输入mymagic宏的名字字段。

  3. 控件选择要存储宏的位置存储宏下拉框。

  4. 中输入宏功能的简要描述描述字段。

  5. 点击创建

从已部署组件执行函数

执行你的函数,就像你在MATLAB函数执行,但这次从部署的组件执行它,以确保它与前面的输出匹配。

  1. 在“功能向导控制面板”的“执行功能”区域中,选择从已部署组件执行MATLAB函数

  2. 点击执行.在Excel中,魔方函数执行,产生类似于下面的结果。

宏执行

运行中创建的宏宏创建通过做以下其中一项,首先清除单元格A1: E5(其中包含您运行的魔方函数的输出函数执行).

提示

在运行宏之前,您可能需要启用适当的安全设置Microsoft Excel.有关宏权限和相关错误消息的信息,请参见错误及解决方法金宝搏官方网站合同附件。

使用Excel2007年或更新的版本Excel

  1. Microsoft Excel,点击查看>宏>查看宏

  2. 选择mymagic宏的名字下拉框。

  3. 点击运行.细胞A1: E5的输出将自动填充mymagic

使用Excel2003

  1. Microsoft Excel,点击工具>宏>宏

  2. 选择mymagic宏的名字下拉框。

  3. 点击运行.细胞A1: E5的输出将自动填充mymagic

微软Excel使用函数向导的外接程序和宏打包

“功能向导”可以自动打包可部署文件Microsoft Excel外接程序和宏共享。若要以这种方式打包外接程序,请使用以下过程之一。

  1. 在成功地构建组件和外接程序,在“功能向导控制面板”对话框的“共享组件”区域框中,查看要包含在打包中的文件字段。添加文件年代或删除文件通过单击适当的按钮,将S切换到和从包中。

  2. 控件的访问权限MATLAB运行时安装程序中的一个选项MATLAB运行时区域。有关MATLAB运行时MATLAB运行时安装程序,请参阅安装和配置MATLAB运行时

  3. 当您准备好创建包时,单击创建包

微软Visual Basic代码访问(可选高级任务)

要访问或修改Visual Basic代码,请执行以下步骤。

  1. 从Excel中开发人员选项卡上,单击Visual Basic,或按ALT+打开Visual Basic编辑器.在较旧版本的Excel中,它可能位于工具>>Visual Basic编辑器

  2. 项目- VBAProject窗口,双击展开VBAProject (mymagic.xls)

  3. 扩大模块文件夹,然后双击Matlab宏模块。

    这将打开包含此项目代码的“Visual Basic Code”窗口。

将宏映射到GUI按钮或控件(可选)

接下来,将宏附加到GUI按钮。

  1. 点击开发>插入

  2. 表单控件菜单,选择按钮(窗体控件)图标。

    提示

    将鼠标悬停在“表单控件”菜单上,可以看到各种控件标签。

  3. 在“分配宏”对话框中,选择要将GUI按钮分配给的宏,然后单击好吧

将宏附加到按钮

更多信息

如果你想…… 看到……
  • 执行基本的MATLAB编程任务

  • 了解部署产品如何处理MATLAB函数下载188bet金宝搏

  • 了解部署产品如何协同工作下载188bet金宝搏

  • 探索编写可部署MATLAB代码的指导方针

编写可部署的MATLAB代码
请参阅有关构建外接程序和COM组件的更多示例 创建宏从MATLAB函数与多个参数
了解更多有关MATLAB运行时 关于MATLAB运行时
控件,了解如何自定义和集成所构建的COM组件微软Visual Basic代码 使用Visual Basic应用集成组件建立和集成光谱分析功能