物流定量技术教案物流管理系(编辑修改稿)内容摘要:

或 )和~ (非 )。 逻辑运算的运算法则为: A 在逻辑运算中,确认非零元素为真,用 1 表示,零元素 为假,用 0表示。 如 设参与逻辑运算的是两个标量 a和 b,那么: aamp。 b a,b 全为非零时,运算结果为 1,否则为 0 a|b a,b 中只要有一个非零,运算结果为 1。 ~ a 当 a是零时,运算结果为 1;当 a非零时,运算结果为 0。 B 若参与逻辑运算的是两个同维矩阵,那么运算将对矩阵相同位置上的元素按标量规则逐个进行。 最终运算结果是一个与原矩阵同维的矩阵,其元素由 1 或 0 组成。 C 若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行。 最终运算结果是一个与矩阵同维 的矩阵,其元素由 1 或 0 组成。 D 在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。 例 建立矩阵 A,然后找出大于 4的元素的位置。 建立矩阵 A: A=[4,65,54,0,6。 56,0,67,45,0] 找出大于 4的元素的位置: find(A4) ( 4)矩阵的转置运算与矩阵运算函数 矩阵的转置:转置运算符是单撇号 (‘ )。 矩阵的左右翻转:对矩阵 A 实施左右翻转的函数是 Fliplr( A) 5 矩阵的上下翻转:对矩阵 A 实施上下翻转的函数是 flipud(A)。 求方阵 A的逆矩阵:调用函数 inv(A)。 字符串 在 MATLAB 中,字符串是用单撇号括起来的字符序列。 MATLAB 将字符串当作一个行向量,每个元素对应一个字符,其标识方法和数值向量相同。 也可以建立多行字符串矩阵。 字符串是以 ASCII 码形式存储的。 abs 和 double 函数都可以用来获取字符串矩阵所对应的 ASCII 码数值矩阵。 相反, char 函数可以把 ASCII 码矩阵转换为字符串矩阵。 例 建立一个字符串向量,然后对该向量做如下处理: (1) 取第 1~ 5个字符组成的子字符串。 (2) 将字符串倒过来重新排列。 (3) 将字符串中的小写 字母变成相应的大写字母,其余字符不变。 (4) 统计字符串中小写字母的个数。 解: ch=‘ABc123d4e56Fg9’。 subch=ch(1:5) %取子字符串 revch=ch(end:1:1) %将字符串倒排 k=find(ch=‘a’amp。 ch=‘z’)。 %找小写字母的位置 ch(k)=ch(k)(‘a’ ‘A’)。 %将小写字母变成相应的大写字母 char(ch) length(k) %统计小写字母的个数 把字符串的内容作为对应的 MATLAB 语句来执行: eval(t) 其中 t为字符串。 结构矩阵和单元矩阵 ( 1)结构矩阵 结构矩阵的建立与引用:结构矩阵的元素可以是不同的数据类型,它能将一组具有不同属性的数据纳入到一个统一的变量名下进行管理。 建立一个结构矩阵可采用给结构成员赋值的办法。 具体格式为: 结构矩阵名 .成员名 =表达式 其中表达式应理解为矩阵表达式。 结构成员的修改:可以根据需要增加或删除结构的成员。 例如要给结构矩阵a增加一个成员 x4,可给 a 中任意一个元素增加成员 x4: a(1).x4=‘410075’。 但其他成员均为空矩阵,可使用赋值语句给它赋确定的结构成员的删除:使 6 用 rmfield 函数来完成。 例如,删除成员 x4: a=rmfield(a,‘x4’) ( 2)单元矩阵 单元矩阵的建立与引用:建立单元矩阵和一般矩阵相似,只是矩阵元素用大括号括起来。 可以用带有大括号下标的形式引用单元矩阵元素。 例如 b{3,3}。 单元矩阵的元素可以是结构或单元数据。 数组 数组是 MATLAB 引用的一个高级概念,善用数组是使用 MATLAB 编程的重要技术。 以数组的观念来看: 向量:一维的矩阵,分为列向量及行向量; 矩阵:二维的数组,一维向量为其特例; 数组:可含 n维,向量、矩阵为其特例 ( 1)多维数组 二维数组 [矩阵 ]用 “ 列 ” 、 “ 行 ” 寻址和表示其中的数据元素。 MATLAB 可将两个二维数组叠在一起形成第三个维数,此第三个维数称为“ 页 ”。 三维数组可对应一个 XYZ 三维立体坐标,其寻址可以表示为(列,行,页)。 如: 三维数组 3179。 4179。 2 四维数组的第四个维数可称为 “ 箱 ” ,而每一 “ 箱 ” 是由一个三维数组所组成,如 3179。 4179。 2179。 4;据此,可类推 到 n 维数组。 直接输入建立多维数组: a=[1 0 2 5。 4 1 8 7。 3 2 6 3] a(:,:,1)=[3 5 4 1。 2 6 2 1。 4 2 3 0] a(:,:,2)=[6 1 4 3。 3 9 0 2。 1 2 3 4] a(2,1,3)=5 [a(:,:,3)=5?] 使用 cat 命令建立多维数组: 命令的一般格式: Z=cat(dim,A,B,C„) dim=1 时,将数组 A,B,C„ 上下垂直排列成新数组; dim=2 时,将数组 A,B,C„ 左右水平并排成新数组; dim=3 时,将数组 A,B 叠起来得到一个三维数组。 如: a=[1 2。 3 4]。 b=[1 0。 0 1]。 Z1=cat(1,a,b),Z2=cat(2,a,b) 7 Z3=cat(3,a,b) (2)异质素组 异质素组:即前述的单元矩阵。 可直接使用大括号设定元素内容或取用其元素: 如: b={‘james bnd’,[1 2。 3 4]。 pi,magic(5)} 查看其实际内容: cellplot(a),celldisp(a) ( 3)结构数组 结构数组:即前述的结构矩阵。 结构数组中包含数个字段,而每个字段可包含各个不同类型的数据。 建立结构数组:使用建立结构矩阵的方法,即直接给其成员赋值或使用STRUCT 命令。 struct_array=struct(field1,value1,„) 如:建立一个学生资料 Student 的结构数组,包括: Student=struct(‘name’,{‘ 李红 ’,‘ 张 „三 ’},‘id’,{0123,0124}, ‘Englishscore’,{80,76}) Student(1) Student(1).Englishscore 也可以一条一条地建立 Student 结构数组 : Clear Student Student(1)=struct(‘name’,‘ 李红 ’,‘id’,0123,„ ‘Englishscore’,80) Student(2)= „ 结构数组数据的取用:结构数组名(序号) .字段名 结构数组数据的修改:结构数组名(序号) .字段名 =表达式 结构数组字段数值的合并: [结构矩阵名 .字段名 ] 功能说明:返回字段值水平排列的结果 如: all_name=[] all_scores= [] 另一种并排字段的方法是使用 cat 命令: 命令格式: A=cat(dim,stucture_field) Dim=1 时,返回水平排列的结果(同上); 76 0124 张三 80 0123 李红 Englishscore id name 8 Dim=2 时,返回垂直排列的结果。 如: a=cat(2,) b=mean(a) 注意:以上运算是结构数组的向量运算,速度非常快。 若要求的运算无 法用向量运算来完成,就只好使用速度较慢的 for 循环了。 (比如增加课程字段,求一个学生各科的平均成绩、打印学生姓名等) 结构数组字段名的返回: fieldnames(结构数组名) 如: c=fieldnames(Student) 结构数组字段的增加与删除如结构矩阵所述。 数据统计处理与多项式计算 数据统计处理 ( 1)求最大值和最小值函数 A 求向量的最大值和最小值 y=max(X):返回向量 X 的最大值存入 y。 [y,I]=max(X):返回向量 X 的最大值存入 y,最大值的 序号存入 I。 求向量 X的最小值的函数是 min(X),用法和 max(X)完全相同。 例 求向量 x 的最大值。 命令如下: x=[43,72,9,16,23,47]。 y=max(x) %求向量 x 中的最大值 [y,l]=max(x) %求向量 x中的最大值及其该元素的位置 B 求矩阵的最大值和最小值 求矩阵 A的最大值的函数有 3种调用格式,分别是: max(A):返回一个行向量,向量的第 i个元素是矩阵 A 的第 I列上的最大值。 [Y,U]=max(A):返回行向量 Y和 U, Y向量记 录 A的每列的最大值, U 向量记录每列最大值的行号。 max(A,[],dim): dim取 1或 2。 dim 取 1 时,该函数和 max(A)完全相同; dim取 2时,该函数返回一个列向量,其第 i 个元素是 A矩阵的第 i 行上的最大值。 求最小值的函数是 min,其用法和 max 完全相同。 C 对两个同型的向量或矩阵进行比较,调用格式为: U=max(A,B): A,B 是两个同型的向量或矩阵,结果 U是与 A,B 同型的向量或矩阵, U 的每个元素等于 A,B 对应元素的较大者。 U=max(A,n): n 是一个标量,结果 U 是与 A 同型的向量或矩 阵, U 的每个元 9 素等于 A对应元素和 n 中的较大者。 min 函数的用法和 max 完全相同。 ( 2)求和与求积函数 设 X是一个向量, A是一个矩阵,函数的调用格式为: sum(X):返回向量 X各元素的和。 prod(X):返回向量 X 各元素的乘积。 sum(A):返回一个行向量,其第 i个元素是 A 的第 i列的元素和。 prod(A):返回一个行向量,其第 i 个元素是 A的第 I 列的元素乘积。 sum(A,dim):当 dim 为 1时,该函数等同于 sum(A);当 dim 为 2 时,返回一个列向量,其第 i个元素是 A的第 i 行的各元素之和。 prod(A,dim):当 dim 为 1 时,该函数等同于 prod(A);当 dim 为 2时,返回一个列向量,其第 i个元素是 A 的第 i行的各元素乘积。 ( 3)求平均值和中值函数 设 X是一个向量, A是一个矩阵,函数的调用格式 mean(X):返回向量 X 的算术平均值。 median(X):返回向量 X的中值。 mean(A):返回一个行向量,其第 i 个元素是 A的第 I 列的算术平均值。 median(A):返回一个行向量,其第 i个元素是 A 的第 i列的中值。 mean(A,dim):当 dim 为 1 时,该函数等同于 mean(A); 当 dim 为 2时,返回一个列向量,其第 i 个元素是 A的第 i 行的算术平均值。 median(A,dim):当 dim 为 1时,该函数等同于 median(A); 当 dim 为 2时,返回一个列向量,其第 i 个元素是 A的第 i 行的中值。 ( 4)累加和与累乘积 设 X是一个向量, A是一个矩阵,函数的调用格式为: cumsum(X):返回向量 X累加和向量。 cumprod(X):返回向量 X累乘积向量。 cumsum(A):返回一个矩阵,其第 i 列是 A的第 i 列的累加和向量。 cumprod(A):返回一个矩阵,其第 i 列是 A的第 i 列 的累乘积向量。 cumsum(A,dim):当 dim 为 1时,该函数等同于 cumsum(A);当 dim为 2时,返回一个矩阵,其第 i 行是 A的第 i 行的累加和向量。 cumprod(A,dim):当 dim 为 1 时,该函数等同于 cumprod(A);当 dim 为 2时,返回一个 矩阵 ,其第 i 行是 A的第 i 行的累乘积向量。 (5)标准方差与相关系数 10 求标准方差:对于向量 X, std(X)返回一个标准方差;对于矩阵 A, std(A)返回一个行向量,它的各个元素便是矩阵 A各列或各行的标准方差。 std 函数的一般调用格式为: Y=std(A,flag,dim) 其中 dim 取 1或 2。 当 dim=1 时,求各列元素的标准方差;当 dim=2 时,则求各行元素的标准方差。 flag 取 0或 1,当 flag=0 时,按σ 1所列公式计算标准方差,当 flag=1 时,按σ 2 所列公式计算标准方差。 缺省 flag=0, dim=1。 求相关系数: corrcoef(X)返回从矩阵 X 形成的一个相关系数矩阵。 此相关系数矩阵的大小与。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。