当前位置:文档之家› 合肥工业大学MATLAB程序设计 第八讲 总结

合肥工业大学MATLAB程序设计 第八讲 总结

14
& | xor ~
逻辑运算符 逻辑与 逻辑或 逻辑与或 逻辑非
输入 l1 0 0 1 1 l2 0 1 0 1
逻辑真值表 与 或 l1 & l2 l1 | l2 0 0 0 1 0 1 1 1
异或 xor(l1,l2) 0 1 1 0
非 ~l1 1 1 0 0
15
运算顺序
表达式中的运算顺序如下: 1.所有的数学运算按照前面描述的顺序的进行。 2.从左向右依次进行关系运算 3.执行所有~运算 4.从左向右依次进行&运算 5.从左向右依次进行|运算和数学运算一样,括号能够改变 括号的默认顺序。
arr2(1,:)=? arr2(:,1:2:3)=?
10
逻辑数组的创建 创建逻辑数组的最简单的方法为直接输入元素的 值为 true 或者 false。 逻辑数组也可以通过逻辑表达式生成。 >> x = [true, true, false, true, false] >> class(x) >> x = magic(4) >= 9
这个表达式创建了一个2×3数组,矩阵
是个空数组 , 没有行 , 没有列 ( 注意他与元素 全为零的数组的区别)
所有元素按行阶排序,换句话说,每一行的值从左 向右,顶部的行置于最前,底部的行置于最后。在一行 内单个数值可用空格或逗号隔开,而行与行之间要与则 用分号隔开,或另起一行书写。
常见编程错误 每一行元素的个数必须完全相同,每一列元素的个数也 必须完全相同.试图创建一个不同行(列)拥有不同数目元素 的数组,在编译时将会出现错误.
一个有m行和n列的二维数组包括m×n个元素,这些元 素在计算机的内存中将会占有m×n个连续的内存空间。这 些数组的元素在内存中是如何排列的呢?MATLAB以列主 导顺序分配数组中的元素。也就是说,内存先分配第一列的 元素,然后第二列,第三列,……以此类推,直到所有列都 被分配完。

这种分配方式也适用于多维数组。数组的第一个下标增长最快,第二个仅次之,依此类推 ,最后一个变化最慢。例如,在一个2×2×2数组中,它的元素在内存中的分配顺序是 (1,1,1),(2,1,1),(1,2,1),(2,2,1),(1,1,2),(2,1,2),(1 ,2,2),(2,2,2)。
8
a(5)=? 那么a(5)的值为5和a(1,2)的值相同,这是因为元素a(1,2) 排在内存第五个位置。
9
可以选择和使用一个MATLAB函数的子集,好像他们 是独立的数组一样。在数组名后面加括号,括号里面是所 有要选择的元素的下标,这样就能选择这个函数的子集了。
arr1(3)=? arr1([1 4])=?arr1(1:2:5)=?
5
多维数组
两个下标来调用这个数组特定的函数:第一个下标选择 行,第二个下标选择列。这样的数组叫做二维数组。二维数 组中元素的个数取决于这个数组的行数和列数。
6
出于问题的需要,MATLAB允许我们创建多维数组。 这些数组的每一维对应一个下标,和每一个单个元素都可 以通过它的每一个下标被调用。在这个数组中元素的总和 取决于每一维中元素的个数。
常见编程错误 在你的MATLAB代码中,仔细区分数组运算和矩阵运 算。数组乘法和矩阵乘法极易混淆。
13
关系运算符 运算符 == ~= > >= < <= 运算 等于 不等于 大于 大于或等于 小于 小于或等于
3<4 3 <= 4 3 == 4 3>4 4 <= 4 'A' < 'B'
1 1 0 0 1 1
3
捷径表达式可以联合转置运算符(’)来初始化行向量, 或更加复杂的矩阵。转置运算符可以在需要的情况下完成行 和列的转换。
4
函数zeros可以初始化任何大小的全为零的数组。用 许多形式的zeros函数。如果这个函数的参数只是一个标 量,那么MATLAB将会创建一个方阵,行数和列数均为 这个参数。如果这个函数有两个标量参数,那么第一个 参数代表行数,第二个参数代表列数。因为size函数所 返回的一个数组的行数和列数,所以它可以联合zeros函 数来创建一个相同大小零矩阵。
常见编程错误 确保你所声明的变量名前31个字符是独一无二的。否则 ,MATLAB将无法辨认出它们的不同。
2
[3.4] [1.0 2.0 3.0] [1.0;2.0;3.0] [1,2,3;4,5,6] [1,2,3 4,5,6] []
这个表达式创建了 1 ×1 数组 ( 一个标量), 包 含数值3.4.这时括号可以省略. 这个表达式创建了1×3数组,一维行向量[1 2 3] 表达式创建了一个3×1数组,一维列向量 这个表达式创建了一个2×3数组,矩阵
11
>> A = rand(5); >> B = A > 0.5;
>> A(B) = 0
>> A = magic(4) >> B = isprime(A) >> A(~B) = 0
12
运算 数组加法 数组减法
MATLAB形式 注释 A+B 数组加法和矩阵加法相同 AB 数组减法和矩阵减法相同 A 和 B 的元素逐个对应相乘 . 两数组之间必须 A.*B 数组乘法 有相同的形,或其中一个是标量. A和B的矩阵乘法.A的列数必须和B的行数相 A*B 矩阵乘法 同. A和B的元素逐个对应相除: A./B 数组右除法 A(i,j)/B(i,j)两数组之间必须有相同的形 ,或其 中一个是标量. A和B的元素逐个对应相除: A.\B 数组左除法 B(i,j)/A(i,j)两数组之间必须有相同的形 ,或其 中一个是标量. A/B 矩阵右除法 矩阵除法,等价于A*inv(B), inv(B)是B的逆阵 A\B 矩阵左除法 矩阵除法,等价于inv(A)*B, inv(A)是A的逆阵 AB 中的元素逐个进行如下运算 A(i,j)^B(i,j), 数组指数运算 A.^B A(i,j)/B(i,j)两数组之间必须有相同的形 ,或其 中一个是标量.
数组的大小(size)由数组的行数和列数共同决定,注意 行数在前。一个数组所包含的数据多少可由行数乘列 数得到。例如,下列数组的大小为
1
MATLAB的变量名必须以字母开头,后面可以跟字母, 数字和下划线(_).只有前31个字符是有效的;如果超过了 31个字符,其余的字符将被忽略。如果声明两个变量,两变 量名只有第32个字符不同,那么MATLAB将它们当作同一变 量对待。
相关主题