1、创建可执行记事本
创建组合了代码、输出和格式化文本的脚本。将代码划分成易于管理、可以单独运行的代码节。查看代码旁边所产生的结果和可视化内容。使用格式化文本、标题、图像和超链接增强您的代码和结果。使用交互式编辑器插入方程,或者使用 LaTeX 创建方程。将代码、结果和格式化文本保存到一个可执行文档中。
您可以在 MATLAB® 和 MATLAB Online™ 中使用实时编辑器。
2、分享您的工作成果
添加交互式控件,让其他人能试验您代码中的参数。隐藏您的代码,以创建简单的应用程序和控制板。以 HTML、PDF、LaTeX 或 Microsoft Word 的形式发布实时脚本。使用格式化文本、图像、超链接和方程创建实时函数的说明文档。通过 MATLAB Online 和 MATLAB Drive™ 分享您的工作成果。
3、更快获得所需结果
MATLAB 提供函数参数、文件名等上下文提示,帮助您编写代码。使用交互式工具探索输出的图窗和表。借助自动生成的代码,您可以轻松重现所做的更改。选择代码块来创建可重用的函数。使用完全集成的调试器排查您的代码问题。
4、交互式完成各个步骤
使用实时编辑器中的任务完成分析中的各个步骤。交互式探索参数和选项,并立即看到结果。在脚本中为已完成的任务生成代码并预览。将实时编辑器任务另存为实时脚本的一部分,以便共享或后续使用。
5、使用实时脚本进行教学
创建生动的讲义,集说明文本、数学方程式、代码和结果于一体。您可以逐节运行代码、步步深入主题,并可临时修改代码以演示概念。开发示例以用于说明工程师如何使用数学来解决实际和复杂的问题。使用 MATLAB 代码创建实时脚本,以构建让学生自行探索和学习的作业。
工程师和科学家使用 MATLAB® 来组织、清理及分析气候学、预测性维护、医学研究和金融等各个领域的复杂数据集。MATLAB 提供:
(1)专为工程和科学数据设计的数据类型和预处理功能
(2)可交互且高度可自定义的数据可视化
(3)App 和实时编辑器任务,帮助您进行交互式数据清理、准备和代码生成
(4)用于统计分析、机器学习和信号处理的数千个预置函数
(5)全面专业的书面文档
(6)通过简单代码更改和额外硬件即可实现的性能加速
(7)无需重大代码改动即可进行大数据分析
(8)分析自动打包功能,可将分析打包成可随意分发的软件组件或可嵌入的源代码,无需手动对算法进行重新编码
(9)通过分析自动生成的可共享报告
1、组织和探查数据
使用为表格、时间序列、分类和文本数据设计的数据类型组织数据。使用 MATLAB 语言基于多个不同领域的数千种算法编写程序。以交互方式自定义可视化,然后自动生成 MATLAB 代码,以使用新数据进行重现。
2、用更少的代码分析和清理数据
MATLAB 实时编辑器任务和 App 支持您以交互方式执行迭代任务,如清理数据、训练机器学习模型或标注数据。然后,这些任务和 App 会生成所需的 MATLAB 代码,以编程方式重现您以交互方式完成的工作。
使用一系列预置函数来识别和清理传感器漂移、信号离群值、缺失数据和噪声。通过联接表和同步时间序列数据来组合单独的数据集。实时编辑器任务支持您在实时脚本中以交互方式求解这些问题,并为您生成代码。数据清理器有助于识别数据问题,并以迭代方式配置和应用多种清理方法来清理时间序列数据。
3、轻松扩展您的分析
使用 parfor 循环和多处理器硬件来加速并行分析,几乎不需要更改代码。创建 gpuarrays,让适当的算法充分利用 GPU 加速。使用 tall 数组处理无法放入内存的数据集,这会在整个数据分析工作流中重载数百个函数来处理无法放入内存的数据。
4、共享您的结果
将您的分析打包到可随意共享的软件组件中,例如可执行文件、C/C++ 库、.NET 程序集、Java® 库和 Python® 包。自动将您的 MATLAB 代码转换成 C 和 C++ 代码,以便部署到嵌入式目标。使用 MATLAB 实时编辑器记录您的工作,并将结果导出为 PDF、Microsoft® Word、LaTex 和 HTML 格式的报告。
1、利用内置库创建可视化
使用内置绘图可视化数据,洞察深度信息,并识别背后的模式和趋势。浏览集成的文档,探索各种函数语法和可用的图选项。基于所选数据,在推荐的相关绘图中作出选择。该功能可帮助您找到数据的最优可视化。
2、探查和注释可视化
尽管有编程方式可用,但您也可以直接对 MATLAB 可视化进行探查和注释,免去自行编写大量代码的繁琐工作。通过平移、缩放或旋转图形,可以直观地探查和理解您的数据。交互式运用标题、轴标签和数据提示添加注释,以传达和突出必要的信息。然后自动生成相应的 MATLAB 代码来重现您的工作,而且只需点击按钮,即可一键将其添加到您的脚本中。
3、创建自定义图形和交互
使用自定义的默认值扩展图形系统,并与同事分享,以便在团队中采用统一标准。找不到合适的图类型?创建新的自定义可视化,并可以像使用内置 MATLAB 图一样使用它们。您还可以添加自定义交互。
4、导出和共享可视化
直接导出出版级质量的图形,用于论文、海报和演示。可使用图自带的选项来交互式保存绘图,也可以使用专门的函数以编程方式保存绘图。将可视化保存为图像或矢量图形文件,包括 PDF、EPS 和 PNG。
1、将命令组合为脚本
您可以组合命令来创建脚本,使您的工作自动化。然后添加高级编程构造,如条件语句和循环。您可以将脚本作为完整程序运行,也可以将它分成可以单独运行的几个部分。使用实时编辑器,您可以创建一个脚本。它是一个可执行的记事本文件,并且会在代码旁边显示对应的输出和可视化内容。使用格式化文本、标题、方程、图像和超链接来记录您的工作,然后与其他人共享。
2、编写可重用函数
您可以使用函数将复杂的程序分解成更小的可重用部分。您可以将脚本中的代码自动重构为可重用函数。可选的命名参数使得函数更便于使用。函数参数验证让您无需编写复杂的输入错误检查代码。您可以使用语言功能来使函数能够管理错误并从错误中恢复。
3、创建自定义类
借助面向对象的编程,您可以定义将数据(属性)与操作该数据的函数(方法)结合起来的对象。您可以使用对象对现实世界中设备和系统的行为进行建模,并将代码组织成组件使其更易于维护和扩展。
一个定义了一组用于构建特定类型对象的指令的 MATLAB 类。类包含以下信息:
(1)属性,用于存储该类的每个对象的数据
(2)方法,用于定义可对类的每个对象执行的操作
(3)类属性和方法的行为方式,以及如何从对象外部访问它们
(4)通过继承定义的类之间的超类和子类关系
4、开发大型应用程序
您可以通过工程、源代码管理集成、单元测试、持续集成和部署以及打包为工具箱等功能使用 MATLAB 开发和维护大型应用程序。要了解详细信息,请参阅软件开发工具。
App 设计工具帮助您创建专业的 App,同时并不要求软件开发专业背景。您只需拖放可视化组件即可实现图形用户界面 (GUI) 设计布局,还可以使用集成的编辑器快速为其行为编程。
要共享 App,您可以使用 MATLAB Drive™,或通过 MATLAB Compiler™ 及 Simulink Compiler™ 创建独立的桌面 App 或 Web App。
在集成式环境中进行用户界面布局,并为 App 的行为编写代码。
1、构建 App
App 设计工具集成了 App 构建的两大任务:图形用户界面 (GUI) 可视化组件布局,以及 App 行为编程。要在 MATLAB 中构建 App,App 设计工具是十分理想的环境。
如果您已在 GUIDE* 中构建 App,则可以使用 GUIDE to App Designer Migration Tool for MATLAB 将现有的 GUIDE App 迁移到 App 设计工具中。
2、设计用户界面
将可视化组件拖放到设计画布,然后根据对齐提示实现精确布局。App 设计工具自动生成面向对象的代码,用于指定 App 的布局和设计。
3、定义 App 行为
使用集成的 MATLAB 编辑器来定义 App 的行为。App 设计工具可以使用代码分析器自动检查代码问题。您可以在编写代码时查看关于代码的警告和错误消息,并根据这些消息修改您的 App。您还可以使用 Stateflow® 图对 App 行为建模。
App设计工具提供大量组件和自定义交互,帮助您构建功能齐全的现代应用程序。
1、组件库
构建 App 时,您可以使用按钮、复选框、树和下拉列表等标准组件。App 设计工具还提供了仪表、指示灯、旋钮和开关等控件,帮助您复现仪表面板的外观和操作。您还可以使用选项卡、面板和网格布局等容器组件组织用户界面。
2、组件交互
添加组件回调及自定义鼠标和键盘交互,在用户与您的 App 交互时执行。您可以在 App 中添加二维和三维绘图以及表,以支持用户交互式探查数据。
将 App 共享给其他用户,无论对方是否有 MATLAB。
1、将 App 共享给其他 MATLAB 用户
您可以将任何 MATLAB App 打包成单个文件,将其轻松共享给使用 MATLAB Desktop 及 MATLAB Online 的其他用户。当您打包 App 时,MATLAB 会创建单个 App 安装文件 (.mlappinstall)。使用该文件安装 App 后,只需从 App 库单击即可访问。
您可以通过 MATLAB Online 及 MATLAB Drive 与其他 MATLAB 用户共享打包的 App,如果您开放编辑权限,则用户不仅能运行 App,还能与您协作。
2、创建独立的桌面 App 和 Web App
使用 MATLAB Compiler 和 Simulink Compiler 创建独立 App,并与其他用户免版权费共享。您还可以将您的 App 打包为交互式 Web App 并使用 MATLAB Web App Server 进行共享。最终用户可直接基于浏览器运行 Web App,而无需额外安装任何软件。
借助 MATLAB®,您可以重用以其他语言编写的既有代码,也可以创建基于 MATLAB 的响应式网站,还可以使用由 MATLAB 直接生成且正确无误的嵌入式 C 代码进行硬件编程。编程语言的差异不再是团队协作的障碍,他们可以投入更多的时间来开发产品,花费较少的时间来换用其他语言重新编码。
1、使用其他语言调用 MATLAB
借助 MATLAB 引擎 API,您可以在其他编程环境中使用 MATLAB。这些 API 支持使用其他编程语言执行 MATLAB 命令,而不必发起 MATLAB 桌面会话。目前已有针对以下语言的 MATLAB 引擎 API:
(1)C/C++
(2)Fortran
(3)Java
(4)Python
COM 组件和应用,包括很多使用 Visual C#® .NET 和 Visual Basic® .NET 等语言编写的程序。
2、在 MATLAB 中调用以其他语言编写的库
如果有使用其他编程语言编写的函数和对象,您可以从 MATLAB 进行调用。MATLAB 文档调用外部接口解释了这些组件的调用方法。
(1)C++ 库
(2)Java 库
(3)Python 库
(4)C/C++ 或 Fortran MEX 文件函数
(5)C 共享库
(6).NET 库
(7)COM 对象
(8)RESTful 和 WSDL Web 服务
3、将 MATLAB 代码转换为 C/C++
您可以使用 MATLAB Coder™ 将 MATLAB 算法转换为 C/C++ 代码。生成的 C 代码可读且可移植,支持 MATLAB 语言的大部分功能以及多种工具箱。有关详细信息,请参考 MATLAB Coder,或观看网络研讨会 MATLAB 转换为 C/C++ 简单易行 (47:38)。
您可以使用 Embedded Coder® 扩展 MATLAB Coder 功能,并可以使用 Simulink Coder™ 从 Simulink 生成代码。
MATLAB Coder 和 MATLAB Compiler SDK 都可以用于 C/C++ 集成,具体选择哪种工具取决于工作流和需求,包括是否需要可移植的独立代码。
4、将 MATLAB 程序打包为软件组件
MATLAB 程序可打包成适用于特定语言的软件组件,以便与常用编程语言集成。这些组件可以与自定义应用集成并部署到桌面、Web 和企业系统。
该方法适用于最终用户不具备 MATLAB 的情形。软件组件使用 MATLAB Compiler SDK 创建,支持免版权费分发。
您可以从 MATLAB 代码生成适用于以下语言的组件:
(1)Microsoft® .NET 程序集
(2)Python 包
(3)Java® 类
(4)C 共享库
(5)C++ 共享库
5、使用多种集成方法
上文介绍了 MATLAB 与其他编程语言相集成的各种方法,实际应用中,很多用户会综合多种方法,创建适合自身需求的混合解决方案。我们为您提供多种方法,助您完成复杂的工作流;同时,MathWorks Consulting Services 还可为您的集成项目再添助力。
1、MATLAB:卓越性能,更快一步
MATLAB® 执行引擎于 R2015a 推出,采用 JIT 编译,可显著加快所有 MATLAB 代码的执行速度。JIT 编译生成本机级代码,该代码针对 MATLAB 代码和特定硬件进行优化。得益于其架构,该执行引擎随着版本更迭不断优化,包括更快地调用内置函数和更快地执行索引操作。此外,很多核心 MATLAB 函数通过隐式多线程化提高性能。
MATLAB 性能由一组基准测试衡量,其中既包含单元操作,也包含反映真实用户工作流的完整应用程序。在一个 MATLAB 发布周期中,这些基准测试会在不同硬件和操作系统上运行多次,以确认新优化、检测和解决性能退化,并识别特定于操作系统的问题。
2、提高 MATLAB 代码的性能
提高代码性能的第一步是识别瓶颈。例如,您可以:
使用 tic、toc 和 timeit 等函数测量代码执行时间
使用 MATLAB 探查器查看程序的哪些部分运行时间最长
使用 MATLAB 代码分析器获得提高性能的其他建议
一旦确定了代码中的瓶颈,通常可采用已知的编程技巧加快代码执行速度。两种最常用的方法是数组预分配和向量化。预分配可避免动态内存分配,从而提高性能。向量化在单个命令中操作向量的所有元素,从而避免循环操作。结合使用这些方法,代码速度可提升几个数量级。
如有必要,对于应用程序中计算量大的部分,您可以用编译语言编写,从而提高性能。在 MATLAB 中,MEX 函数支持您调用高性能的 C、C++ 或 Fortran 代码,就像调用 MATLAB 内置函数一样轻松。借助 MATLAB Coder™,您可以自动将 MATLAB 代码转换为 MEX 文件,后者的运行速度可能会快很多。
3、使用并行计算,充分利用硬件
您可以使用并行计算来直接利用所有硬件资源,从而求解计算或数据密集型问题。借助熟悉的 MATLAB,您可以轻松利用各项功能来扩展到多个进程、多个线程和 GPU。您可以在同一台计算机上完成开发和运行,还可以将执行扩展到计算集群或云,而无需重新编码。