0
点赞
收藏
分享

微信扫一扫

【新星计划·2023】Linux内核、发行版讲解,它们有什么区别?

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中常用的内置函数

举报

相关推荐

0 条评论