(转载)从0开始学matlab(第7天)—运算的优先级与内置函数

news/2024/4/16 1:51:17

1运算的优先级

        许多的数学运算写入一个表达式是非常平常的事。例如,考虑初速度为 0 的匀加速运动的位移表达式
distance = 0.5 * accel * time ^ 2
        这个表达式有二个乘法运算和一个幂运算。在这样的表达式中,知道运算的先后顺序是十分重要的。如果幂运算先于乘法运算执行,这个表达式等价于
distance = 0.5 * accel * (time ^ 2)
        如果乘法运算先于幂运算执行,这个表达式等价于
distance = (0.5 * accel * time) ^ 2
        这两个式子将产生不同的结果,所以我们必须清楚它们中那个是正确的。为了使表达的值精确, MATLAB 建立了一系列的规则控制运算的层次或顺序。这些规则一般情况下遵循代数的运算法则。数学运算的顺序如表1
表1 运算的优先级

 例子:

变量 a,b,c,d 初始化如下
a = 3; b = 2; c = 5; d = 3;
计算如下的 MATLAB 的赋值语句
(a) output = a*b+c*d;
(b) output = a*(b+c)*d;
(c) output = (a*b)+(c*d);
(d) output = a^b^d;
(e) output = a^(b^d);
        正如我们看到的,运算的顺序对一个代数表达式的最终值产生重大的影响。将程序中的每个表达式尽量写清楚,这是十分重要的。编写的程序不仅要能够计算出所要求的值的来,在需要的时侯,还要考虑它的可维护性。你应当经常问自己“六个月后我能看得懂我现在编得程序吗?其他的程序员看到我的代码,他能迅速的理解吗?”。如果在你的心中有所疑虑,那就用更多的括号使之更加清晰。
好的编程习惯
在需要的时侯用括号使用表达式更加清晰和易于理解。
        如果在一个表达式中用到括号,那么括号必须平衡。也就是说,左括号数与右括号数相等。如果两者数目不相同,那么将会导致错误的产生。这种错误经常在输入过程中发生,当MATLAB 编译器在执行这个命令时被发现。例如
(2+4) /2)

        在执行时将会出现一个错误

2MATLAB的内置函数

        与数学的函数不同,MATLAB 函数返回一个或多个值给调用函数。max 函数就是这样的一个例子。这个函数一般情况下返回输入向量中的最大值,但是它返回的第二个参数是输入向量中的最大值在向量中的位置。例如,语句
maxval = max ([1 -5 6 -3])
        返回的结果为 maxval=6, 但是要有两个返回值,那么这个函数包括最大所处的位置。
[maxval index] = max ([1 -5 6 -3])
        将会产生结果 maxval=6, index=3.
        许多 MATLAB 函数定义了一个或多个标量输入,产生一个输出。例如,语句 y=sin(x)计算了 x 的正弦,并将结果存储到 y 变量中。如果这些函数接受了输入值构成的数组,那么MATLAB 将一一计算出每个元素所对应的值。例如,假设
x=[0 pi/2 3*pi/2 2*pi]
        那么语句
y=sin(x)
        将会产生 y=[0 1 -1 -0].
        一些极其常用的 MATLAB 函数列入了表 2 . 这些函数将会用在以后的例子的作业中. 如果你要加载不在下表中的函数 , 那么你通过前面介绍的方法 , 搜索适当的函数. 注意与大多数的计算语言不同 , 许多的 MATLAB 函数能够正确计算出复数结果.matlab 自动计算出正确的结果 , 尽管其结果可能是虚数和复数 . 例如 , C Fortan 语言中运行函数sqrt(-2) 时将会出现运行时错误 . 相反 ,MATLAB 将会产生虚部答案 .
>> sqrt(-2) 
ans = 0 + 1.4142i

表2 MATLAB中常用的内置函数


http://www.ppmy.cn/news/597212.html

相关文章

pipeline实现二次还原

通过mode参数确定是否发布还是回滚,在满足rollback条件下,列举出我们的所有的备份的目录,根据回滚条件选择索要回滚的目录(目录是根据时间戳来判断创建的文件) pipeline {agent anyparameters {choice(name: mode, choices: [deploy,rollbac…

关于如何查找NXP S32K1xx系列单片机的封装信息和引脚定义

前言 用惯了stm32的手册,Datasheet会直接描述封装信息和引脚定义,突然要看NXP的手册和资料,还真有点不太习惯。而且还是硬件找我一个软件要封装和引脚定义,有点离谱。为了找到需要的信息,也着实费了一些功夫。 一、下…

SLE46C-40.K44P-M12安全传感器

SLE46C-40.K44P-M12单光速安全传感器 供电电压 UB24 V, DC, -20 ... 20 %, 包括剩余波纹度 剩余波纹度10 %, 来自UB 开路电流0 ... 15 mA 输出 数字开关量输出数2 光束 开关量输出 小开关电压高22 V 大开关电压低2 V 典型开关电压23 V 电压类型DC ?大开关电流100 mA 开关电压…

k44.第十七章 K8s运维篇-DevOps 持续集成 持续部署 (四)

2.DevOps-持续集成 持续部署实战 2.1 基于K8s的动态Jenkins Slave

uniapp vite 路由跳转、登录模块封装(非无感登录)

需求 将uniapp的路由跳转promise化navigateTo接受后端返回的url,需要自动解析跳转模式所有的路由跳转都要先检测用户是否已登录 1)、如果未登录,打开登录弹框,用户授权登录,登录成功后要自动完成用户的上一次操作,无需…

S32K144之无法debug,复位引脚为低

S32K144之无法debug,复位引脚为低 当我们把S32K144的开发板更换芯片或者锁死之后解锁后,可能会遇到这样一个问题,S32DS无法对进行烧录,且芯片的reset引脚被拉低。 如下是我的开发板,复位的红色指示灯常亮。 当你使用…

S32K144之芯片锁死解锁——进入HardFault

S32K144之芯片锁死解锁——进入HardFault 最近遇到因为软件代码问题导致进入HardFault,从而使芯片锁死,来简述具体现象以及最终的解锁方法。 导致原因:如下图,在进行Gpio的相关配置,case后面没有break语句&#xff0c…

ANSYS中PLANE182单元的使用

题目 厚度t1cm的均质正方形薄板,上下受均匀拉力q 10^6 N/m,材料弹性模量E 2.1x10^11 Pa,泊松比μ 1/3,不记自重。使用ANSYS软件或MATLAB软件,采用PLANE182单元进行求解。 用ANSYS求解 Main Menu>Preprocessor >…

Elasticsearch在各大互联网公司的应用案例

点击上方蓝色字体,选择“设为星标” 回复”资源“获取更多资源 国内现在有大量的公司都在使用 Elasticsearch,包括携程、滴滴、今日头条、饿了么、360安全、小米、vivo等诸多知名公司。 除了搜索之外,结合Kibana、Logstash、Beats&#xff0c…

生成树个数(基尔霍夫矩阵)

Problem 2. tcount Input file: tcount.in Output file: tcount.out Time limit: 1 second Mr.H发现了一个无向连通图,它觉得,如果选出一些边来,使得这个图变为一棵树,那么这个边集就非常棒。 现在,Mr. H 想让你帮…

S32K144学习之IO口控制

1、PINS_DRV_SetPinsDirection(PTD, ~((1 << 5)|(1 << 6)));//设置PTD5&#xff0c;PTD6为输入模式。设置1为输出模式&#xff0c;0为输入模式。 2、读取PTD的状态&#xff0c;如果PTD5为高电平输入&#xff0c;将PTC9设置为高。如果为低电平输入&#xff0c;将PT…

is not allowed to connect to this MySQL server

问题 java.sql.SQLException: null, message from server: "Host DESKTOP-6HQK2V3 is not allowed to connect to this MySQL server"原因 数据库所在的服务器不允许你的java程序访问它的数据库。所以&#xff0c;我们要对数据库服务器进行设置&#xff0c;使它允…

支付宝H5支付实现 绕过浏览器白名单

在开发支付宝H5支付的时候&#xff0c;遇到了一个很尴尬的问题&#xff0c;无法唤起支付宝APP问题分析&#xff1a;当前浏览器不在支付宝配置的白名单内 市场上的浏览器太多&#xff0c;总有用户会使用不一样的浏览器&#xff0c;就UC浏览器来说&#xff0c;不同版本也有出现不…

S32K144学习笔记:4 信号复用和引脚分配

4.1信号多路复用使多功能共享单片信号 信号复用单元包括来自GPIO的控制信号、端口和PAD接口逻辑。信号复用单元由几个独立的子单元组成&#xff0c;每个子单元处理一个pad的信号多路复用。端口控制块控制模块特定的PAD设置(上拉等)和外部引脚的信号。参见port_pcr。控制信号的描…

Docker专题系列之十三:docker容器内安装vim编辑器

在使用docker时&#xff0c;有时候我们需要编辑配置文件&#xff0c;需要使用vim或者vi命令&#xff0c;但是会发现&#xff1a; root20ab69bedcdb:/etc/mysql# vim my.cnf bash: vim: command not found这是因为vim没有安装&#xff0c;使用如下命令安装&#xff1a; apt-ge…

集合论与图论MOOC答案

第1讲 图的基本概念 第1讲测验 1、 问题:具有3个顶点的互不同构的图多少个&#xff1f; 选项&#xff1a; A:1 B:2 C:3 D:4 答案: 【4】 2、 问题:设图G (V, E)&#xff0c;其中V {A,B,C,D}, E {{A,B},{A,C},{A,D},{B,C},{C,D}},则顶点C的度为多少&#xff1f; 选项&#…

S32K的lpit组件使用(通用定时器)

本文摘要&#xff1a;本文章介绍如何使用NXP官方软件S32KDS中的lpit组件(通用定时器) 开发平台&#xff1a;S32 Design Studio for ARM Version 2.2 SDK版本&#xff1a;S32_SDK_S32K1xx_RTM_3.0.0 使用芯片&#xff1a;S32K148 组件例程免费下载方式在文末&#xff01;&am…

【S32K3学习笔记】配置FlexCAN接收指定CANID

1.打开IP FlexCAN Driver界面配置 CAN0支持128个邮箱&#xff0c;这里开启96个邮箱&#xff0c;开启FIFO Filters模式&#xff08;此模式下每个邮箱可以配置成接收指定的4个CANID&#xff09;&#xff0c;共支持接收指定的128个CANID&#xff0c;波特率为500K 2.代码初始化 v…

最小生成树/森林算法

Kruscal最小生成树算法 时间复杂度 O(mlogm) m表示边 算法主要针对边来展开 边数较少时效率非常高 所以对于稀疏图有很大的优势 依据贪心思想每次添加最小权值边 且保证不能成环 因为成环一定有浪费的边 通过并查集判断是否成环 若两点已经联通 再次添加连接该两点的边时 会成…
最新文章