逻辑真值表-恶意代码分析实战英文原版pdf
在MATLAB中,计算的精度问题可能会引发一些意想不到的结果。举个例子,执行以下命令:
a = 0;
b = sin(pi);
a == b
MATLAB会报告a
和b
不同,这主要是由于修正误差造成的。在计算中,sin(pi)
产生的结果并不是0,而是一个极小的数,1.2246×10^-16。尽管两个理论上相等的值出现了细微差别,我们可以通过检测两数之间在一定的范围内是否近似相等来解决这个问题。例如:
abs(a - b) < 1.0E-14
这个表达式会返回1
,即true
,尽管在a
与b
的计算中存在修正误差。这也提醒我们,在编程时要小心处理数值比较,因为修正误差可能会使两个本来应该相等的值不相等。你是否也遇到过类似的问题?这时候可以借助于一定的误差范围来判断它们是否近似相等。
MATLAB中的逻辑运算符是处理逻辑操作数并生成逻辑结果的工具。包括三个二元运算符:AND(&),OR(|)和异或(xor),以及一个一元运算符NOT(~)。它们的基本形式如下:
l1 & l2
l1 | l2
xor(l1, l2)
~l1
如果l1
和l2
的逻辑关系为true
,那么运算将会返回值1,否则返回0。如果你有一个数值不为0,那么MATLAB将其视为true
,否则视为false
。那么,~5
的结果是什么呢?没错,是0,~0
的结果是1。
为了进一步了解MATLAB的逻辑运算,可以参考MATLAB编程设计一书中的详细讲解。如果你对修正误差感兴趣,推荐阅读MATLAB误差分析实验,这篇文章提供了深入的实验分析和实例。
有趣的是,MATLAB还允许在标量和数组之间进行逻辑运算。假设有如下数组:
a = [1 0; 0 1];
b = 0;
表达式a & b
将会产生什么结果?你可以自己动手试试看,MATLAB的操作非常直观易懂。
这样有趣且实用的功能,难道不值得一试吗?赶快动手体验一下吧!
下载地址
用户评论