Simulink 是一个用于动态和嵌入式系统的仿真和基于模型的设计环境,与 MATLAB 集成。 Simulink 也由 MathWorks 开发,是一种数据流图形编程语言工具,用于对多域动态系统进行建模、仿真和分析。它基本上是一个图形框图工具,具有可定制的块库集。 它允许您将 MATLAB 算法合并到模型中,并将仿真结果导出到 MATLAB 中进行进一步分析。 Simulink 支持 - 系统级设计 模拟 自动代码生成 嵌入式系统的测试和验证 MathWorks 提供的其他几种附加产品以及可用于 Simulink 的第三方硬件和软件产品。 以下列表简要描述了其中一些 - 状
GNU Octave 是一种类似于 MATLAB 的高级编程语言,并且它与 MATLAB 基本兼容。它也用于数值计算。 Octave 与 MATLAB 有以下共同特点 - 矩阵是基本数据类型 它内置了对复数的支持 它具有内置的数学函数和库 支持用户自定义函数 GNU Octave 也是可自由再发行的软件。您可以根据自由软件基金会发布的 GNU 通用公共许可证 (GPL) 的条款重新分发和/或修改它。 MATLAB 与 Octave 大多数 MATLAB 程序在 Octave 中运行,但某些 Octave 程序可能无法在 MATLAB 中运行,因为 Octave 允许某些 MATLAB
MATLAB 提供了用于处理变换的命令,例如拉普拉斯变换和傅立叶变换。转换在科学和工程中用作简化分析和从另一个角度查看数据的工具。 例如,傅立叶变换允许我们将表示为时间函数的信号转换为频率函数。拉普拉斯变换允许我们将微分方程转换为代数方程。 MATLAB 提供了拉普拉斯 , 傅立叶 和 fft 用于处理拉普拉斯、傅立叶和快速傅立叶变换的命令。 拉普拉斯变换 时间函数 f(t) 的拉普拉斯变换由以下积分给出 - 拉普拉斯变换也表示为 f(t) 到 F(s) 的变换。你可以看到这个变换或积分过程将符号变量 t 的函数 f(t) 转换成另一个函数 F(s),带有另一个变量 s。 拉普拉斯
MATLAB 将多项式表示为包含按降幂排序的系数的行向量。例如,方程 P(x) =x4 + 7x3 - 5x + 9 可以表示为 - p =[1 7 0 -5 9]; 计算多项式 polyval 函数用于计算指定值的多项式。例如,要评估我们之前的多项式 p , 在 x =4 处,输入 - 现场演示p =[1 7 0 -5 9];polyval(p,4) MATLAB 执行上述语句并返回以下结果 - ans =693 MATLAB 还提供了 polyvalm 用于评估矩阵多项式的函数。矩阵多项式是一个多项式 以矩阵为变量。 例如,让我们创建一个方阵 X 并计算多项式 p,在 X -
集成处理两种本质上不同类型的问题。 在第一种类型中,给出了一个函数的导数,我们想找到这个函数。因此,我们基本上扭转了分化的过程。这个反向过程被称为反微分,或寻找原始函数,或寻找不定积分 . 第二种问题涉及将非常多的非常小的数量相加,然后在数量的大小接近零时取一个极限,而项的数量趋于无穷大。这个过程导致了定积分的定义 . 定积分可用于求面积、体积、重心、惯性矩、力所做的功以及许多其他应用。 使用 MATLAB 求不定积分 根据定义,如果函数 f(x) 的导数是 f(x),那么我们说 f(x) 对 x 的不定积分是 f(x)。例如,由于 x2 的导数(相对于 x) 是 2x,我
MATLAB 提供了 diff 用于计算符号导数的命令。以最简单的形式,将要区分的函数作为参数传递给 diff 命令。 例如,让我们计算函数 f(t) =3t2 的导数 + 2t-2 示例 创建一个脚本文件并在其中键入以下代码 - syms tf =3*t^2 + 2*t^(-2);diff(f) 当上面的代码被编译和执行时,它会产生以下结果 - ans =6*t - 4/t^3 以下是上述计算的 Octave 等效项 - pkg 加载symbolst =sym(t);f =3*t^2 + 2*t^(-2);differentiate(f,t) Octave 执行代码并返回以下结果
MATLAB 提供了多种方法来求解微积分和微积分问题,求解任意阶微分方程和极限计算。最重要的是,您可以轻松地绘制复杂函数的图形,并通过求解原始函数及其导数来检查图形上的最大值、最小值和其他固定点。 本章将讨论微积分的问题。在本章中,我们将讨论微积分前的概念,即计算函数的极限和验证极限的性质。 在下一章差异化 ,我们将计算表达式的导数,并在图上找到局部最大值和最小值。我们还将讨论求解微分方程。 最后,在集成 本章,我们将讨论积分微积分。 计算限制 MATLAB 提供了限制 用于计算限制的函数。在其最基本的形式中,限制 函数将表达式作为参数,并在自变量变为零时找到表达式的极限。 例如,让
到目前为止,我们已经看到所有示例都可以在 MATLAB 及其 GNU(也称为 Octave)中运行。但是对于求解基本的代数方程,MATLAB 和 Octave 几乎没有什么不同,因此我们将尝试在单独的部分中介绍 MATLAB 和 Octave。 我们还将讨论代数表达式的因式分解和化简。 在 MATLAB 中求解基本代数方程 解决 函数用于求解代数方程。在最简单的形式中,solve 函数将用引号括起来的方程作为参数。 例如,让我们在方程 x-5 =0 中求解 x solve(x-5=0) MATLAB 将执行上述语句并返回以下结果 - ans =5 您也可以将求解函数称为 - y =s
本章将继续探索 MATLAB 的绘图和图形功能。我们将讨论 - 绘制条形图 绘制轮廓 三维图 绘制条形图 栏 命令绘制二维条形图。让我们举一个例子来说明这个想法。 示例 让我们有一个有 10 名学生的想象教室。我们知道这些学生获得的分数百分比是 75、58、90、87、50、85、92、75、60 和 95。我们将为这些数据绘制条形图。 创建一个脚本文件并输入以下代码 - x =[1:10];y =[75, 58, 90, 87, 50, 85, 92, 75, 60, 95];bar(x,y), xlabel( Student),ylabel(Score),title(First
要绘制函数图,您需要执行以下步骤 - 定义 x , 通过指定值范围 对于变量 x , 为其绘制函数 定义函数,y =f(x) 调用情节 命令,如 plot(x, y) 下面的例子将演示这个概念。让我们绘制简单的函数 y =x x 的取值范围为 0 到 100,增量为 5。 创建一个脚本文件并输入以下代码 - x =[0:5:100];y =x;plot(x, y) 当您运行该文件时,MATLAB 显示以下图 - 让我们再举一个例子来绘制函数 y =x2 .在本例中,我们将绘制两个具有相同功能的图形,但在第二次中,我们将减小增量的值。请注意,随着我们减少增量,
MATLAB 中的数据导出(或输出)是指写入文件。 MATLAB 允许您在另一个读取 ASCII 文件的应用程序中使用您的数据。为此,MATLAB 提供了多种数据导出选项。 您可以创建以下类型的文件 - 来自数组的矩形分隔 ASCII 数据文件。 击键日志(或日志)文件和结果文本输出。 使用 fprintf 等低级函数的专用 ASCII 文件。 MEX 文件,用于访问写入特定文本文件格式的 C/C++ 或 Fortran 例程。 除此之外,您还可以将数据导出到电子表格。 有两种方法可以将数值数组导出为带分隔符的 ASCII 数据文件 - 使用保存 函数并
在 MATLAB 中导入数据意味着从外部文件加载数据。 导入数据 函数允许加载不同格式的各种数据文件。它有以下五种形式 - Sr.No. 功能和说明 1 A =导入数据(文件名) 将数据从 filename 表示的文件加载到数组 A . 2 A =importdata(-pastespecial) 从系统剪贴板而不是文件加载数据。 3 A =importdata(___, delimiterIn) 解释 delimiterIn 作为 ASCII 文件、文件名或剪贴板数据中的列分隔符。您可以使用 delimiterIn 使用上述语法中的任何输入参数。 4
函数是一组一起执行任务的语句。在 MATLAB 中,函数在单独的文件中定义。文件名和函数名要一致。 函数在它们自己的工作空间(也称为本地工作空间)中操作变量 ,与您在 MATLAB 命令提示符下访问的工作区分开,该工作区称为基础工作区 . 函数可以接受多个输入参数,也可以返回多个输出参数。 函数语句的语法是 - function [out1,out2, ..., outN] =myfun(in1,in2,in3, ..., inN) 示例 以下函数名为 mymax 应该写在一个名为 mymax.m 的文件中 .它以五个数字作为参数并返回数字中的最大值。 创建一个名为 mymax.m
在 MATLAB 中创建字符串非常简单。事实上,我们已经多次使用它。例如,您在命令提示符中键入以下内容 - 现场演示my_string =教程要点 MATLAB 将执行上述语句并返回以下结果 - my_string =教程要点 MATLAB 将所有变量视为数组,将字符串视为字符数组。让我们使用 whos 命令检查上面创建的变量 - whos MATLAB 将执行上述语句并返回以下结果 - 名称大小字节类属性my_string 1x16 32 char 有趣的是,您可以使用像 uint8 这样的数字转换函数 或 uint16 将字符串中的字符转换为其数字代码。 字符 函数将整数向量转换
MATLAB 支持各种数值类,包括有符号和无符号整数以及单精度和双精度浮点数。默认情况下,MATLAB 将所有数值存储为双精度浮点数。 您可以选择将任意数字或数字数组存储为整数或单精度数字。 所有数值类型都支持基本的数组运算和数学运算。 转换为各种数字数据类型 MATLAB 提供了以下函数来转换为各种数值数据类型 - 函数 目的 双重 转换为双精度数 单个 转换为单精度数 int8 转换为 8 位有符号整数 int16 转换为 16 位有符号整数 int32 转换为 32 位有符号整数 int64 转换为 64 位有符号整数 uint8 转换为 8 位无符号整数 uint
冒号(:) 是 MATLAB 中最有用的运算符之一。用于创建向量、下标数组和指定迭代 . 如果你想创建一个行向量,包含从 1 到 10 的整数,你写 - 现场演示1:10 MATLAB 执行该语句并返回一个包含从 1 到 10 的整数的行向量 - ans =1 2 3 4 5 6 7 8 9 10 如果你想指定一个非 1 的增量值,例如 - 现场演示100:-5:50 MATLAB 执行语句并返回以下结果 - ans =100 95 90 85 80 75 70 65 60 55 50 让我们再举一个例子 - 现场演示0:pi/8:pi MATLAB 执行语句并返回以下结果
MATLAB 中所有数据类型的变量都是多维数组。向量是一维数组,矩阵是二维数组。 我们已经讨论了向量和矩阵。在本章中,我们将讨论多维数组。不过,在此之前,让我们先讨论一些特殊类型的数组。 MATLAB 中的特殊数组 在本节中,我们将讨论一些创建特殊数组的函数。对于所有这些函数,单个参数创建一个方形数组,双参数创建矩形数组。 zeros() 函数创建一个全为零的数组 - 例如 - 现场演示zeros(5) MATLAB 将执行上述语句并返回以下结果 - ans =0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ones() 函数创
矩阵是一个二维数组。 在 MATLAB 中,您可以通过以逗号或空格分隔的数字形式输入每行中的元素并使用分号标记每行的结尾来创建矩阵。 例如,让我们创建一个 4×5 矩阵 a - 现场演示a =[ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8] MATLAB 将执行上述语句并返回以下结果 - a =1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 引用矩阵的元素 引用第 mth 中的元素 行和第 nth 列,矩阵 mx , 我们写 - mx(m, n); 比如要引用第2nd中的元素 行和 5th 列,矩阵 a ,如
向量是一维数组。 MATLAB 允许创建两种类型的向量 - 行向量 列向量 行向量 行向量 通过将元素集括在方括号中,使用空格或逗号分隔元素来创建。 现场演示r =[7 8 9 10 11] MATLAB 将执行上述语句并返回以下结果 - r =7 8 9 10 11 列向量 列向量 通过将元素集括在方括号中,使用分号分隔元素来创建。 现场演示c =[7; 8; 9; 10; 11] MATLAB 将执行上述语句并返回以下结果 - c =7 8 9 10 11 引用向量的元素 您可以通过多种方式引用向量的一个或多个元素。第 ith 向量 v 的分量称为 v(i)。例如 -
可能存在需要多次执行代码块的情况。一般来说,语句是按顺序执行的。函数中的第一条语句先执行,然后是第二条,依此类推。 编程语言提供了各种控制结构,允许更复杂的执行路径。 循环语句允许我们多次执行一个语句或一组语句,以下是大多数编程语言中循环语句的一般形式 - MATLAB 提供以下类型的循环来处理循环要求。单击以下链接以检查其详细信息 - Sr.No. 循环类型和描述 1 while 循环 在给定条件为真时重复一个语句或一组语句。它在执行循环体之前测试条件。 2 for 循环 多次执行一系列语句并简化管理循环变量的代码。 3 嵌套循环 您可以在任何另一个循环中使用一个或多
MATLAB