l 2.1 常量与变量
l 2.1.1 特殊常量文章源自微观生活(93wg.com)微观生活-https://93wg.com/4154.html
l 文章源自微观生活(93wg.com)微观生活-https://93wg.com/4154.html
l >> eps %浮点相对于精度文章源自微观生活(93wg.com)微观生活-https://93wg.com/4154.html
l ans =文章源自微观生活(93wg.com)微观生活-https://93wg.com/4154.html
l 2.2204e-016文章源自微观生活(93wg.com)微观生活-https://93wg.com/4154.html
l >> pi %圆周率文章源自微观生活(93wg.com)微观生活-https://93wg.com/4154.html
l ans =文章源自微观生活(93wg.com)微观生活-https://93wg.com/4154.html
l 3.1416文章源自微观生活(93wg.com)微观生活-https://93wg.com/4154.html
l >> realmax %最大正实数文章源自微观生活(93wg.com)微观生活-https://93wg.com/4154.html
l ans =文章源自微观生活(93wg.com)微观生活-https://93wg.com/4154.html
l 1.7977e+308
l >> realmin %最小正实数
l ans =
l 2.2251e-308
l >> clock %挂钟
l ans =
l 1.0e+003 *
l 2.0070 0.0030 0.0120 0.0200 0.0270 0.0033
l >> fix
l ans =
l 2007 3 12 20 28 19
l >> date %日期
l ans =
l 12-Mar-2007
l 其它经常使用变量
l NaN %不定值
l nargin %函数输入参数数目
l nargout %函数输出参数数目
l i,j %虚数单位
l tic %秒表计时开始
l toc %秒表计时收场
l 2.1.2 数值描写
l >> 3
l ans =
l 3
l >> -99
l ans =
l -99
l >> 0.001
l ans =
l 1.0000e-003
l >> 9.45
l ans =
l 9.4500
l >> 1.3e-3
l ans =
l 0.0013
上机练习:在命令提醒符“>>”后面输入这些数,看看得到什么样的结果!
l >> 4.5e33
l ans =
l 4.5000e+033
l 数值通常采取“占用64位内存的双精度”表示,其相对于精度是eps
l >> 3==3+eps %判断两数是不是相等
l ans =
l 1
l >> 3==3+1e-5
l ans =
l 0
l >> 3==)
l ans =
l 0
l 2.1.3 一般变量
l 一、 命名规则
l 变量名区别大小写
l 变量名以字母开头,可以由字母,下划线数字形成,其长度不超过63位,变量名不可以含有空格、标点、运算符.
例如
在MATLAB命令窗口输入命令:
>> x=1+2i; %一般写成x=1+2*i
>> y=3-sqrt;
>> z=)-sin)/);
注:pi, i由系统自身定义的变量,在使历时,应尽可能防止对这些变量从新赋值。
二、内存变量的管理
1.内存变量的删除了与修改
MATLAB工作空间窗口专门用于内存变量的管理。在工作空间窗口中可以显示所有内存变量的属性。中选中某些变量后,再单击Delete按钮,就能删除了这些变量。中选中某些变量后,再单击Open按钮,将进入变量编辑器。通过变量编辑器可以直接察看变量中的具体元素,也可修扭转量中的具体元素。
clear命令用于删除了MATLAB工作空间中的变量。who以及whos这两个命令用于显示在MATLAB工作空间中已经驻留的变量名清单。who命令只显示出驻留变量的名称,whos在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息。
2.2 数组
Matlab中的数组包括:行向量,列向量,矩阵及多维数组.
l 2.2.1 树立数组
l 1、直接赋值法
l >> X1=[0 1 2 3 0.1*pi 10*pi]
l X1 =
l 0 1.0000 2.0000 3.0000 0.3142 31.4159
l >> X2=[1 2 3;4 5 6;7 8 9]
l X2 =
l 1 2 3
l 4 5 6
l 7 8 9
l >> X3=[1 2 3
l 4 5 6
l 7 8 9]
l X3 =
l 1 2 3
l 4 5 6
l 7 8 9
l 2、冒号法
l 语法:初始值:步长:终值
l >> X4=1:5
l X4 =
l 1 2 3 4 5
l >> X5=1:2:8
l X5 =
l 1 3 5 7
l >> X6=*pi
l X6 =
l 6.2832 9.4248 12.5664 15.7080 18.8496 21.9911 25.1327
l >> X7=*pi
l X7 =
l 6.2832 7.8540 9.4248 10.9956 12.5664
l 3、linspace法、logspace法
l 语法:linspace
l logspace
l >> X8=linspace %在区间插入9个数
l X8 =
l Columns 1 through 10
l 0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000
l
l 1.6000 1.8000
l Column 11
l 2.0000
l >> X9=logspace %在10^0与10^2间插入9个数
l X9 =
l Columns 1 through 10
l 1.0000 1.5849 2.5119 3.9811 6.3096 10.0000 15.8489 25.1189
l 39.8107 63.0957
l Column 11
l 100.0000
l >> X10=10.^X8 %一个数与数组的运算
l X10 =
l Columns 1 through 10
l 1.0000 1.5849 2.5119 3.9811 6.3096 10.0000 15.8489 25.1189
l 39.8107 63.0957
l Column 11
l 100.0000
l 4、拼接法
l >> A=[1 2 3]
l A =
l 1 2 3
l >> B=4:6
l B =
l 4 5 6
l >> AB1=[A,B]
l AB1 =
l 1 2 3 4 5 6
l >> AB2=[A;B]
l AB2 =
l 1 2 3
l 4 5 6
l >> C=AB2
l C =
l 1 2 3
l 4 5 6
l >> D=[0 1]\' %转置
l D =
l 0
l 1
l >> CD=[C,D]
l CD =
l 1 2 3 0
l 4 5 6 1
l 2.2.2 数组的引用
l 1.一维数组
l 设X是一维数组,X: X的第n个元素
l X: X的第n1至n2个元素
l >> X=*pi
l X =
l 3.1416 6.2832 9.4248 12.5664 15.7080 18.8496 21.9911 25.1327
l >> X
l ans =
l 9.4248
l >> X %走访X的第4至第8个元素
l ans =
l 12.5664 15.7080 18.8496 21.9911 25.1327
l >> X %元素倒排
l ans =
l 25.1327 21.9911 18.8496 15.7080 12.5664 9.4248 6.2832 3.1416
l >> X
l ans =
l 15.7080 12.5664 9.4248 6.2832 3.1416
l >> X
l ans = 15.7080 9.4248 3.1416
l 2.二维数组
l 设X是二维数组,X: X的第m行第n列元素
l X: X的第m1行元素
l X: X的第n1列元素
l X: X的第k个元素
l >> A=reshape
l A =
l 1 4 7
l 2 5 8
l 3 6 9
l >> A %A的第1行第2列元素
l ans =
l 4
l >> A %A的第6个元素
l ans =
l 6
l >> A
l ans =
l 2 5 8
l >> A
l ans =
l 4
l 5
l 6
l >> A
l ans =
l 7
l 8
l >> A
l ans =
l 3 6 9
l 2 5 8
l 1 4 7
l 2.2.3细胞数组与结构数组
l 1. 细胞数组(cell)
l 细胞数组是以单元为元素的数组,其元素可以是实数矩阵、字符串数组、复数向量,元素可以是不同数值的数据类型.
l 细胞数组的创立
l 左标志法
l >> C{1,1}=4+6i; %创立细胞数组C
l >> C{1,2}=\'Guangxi University\';
l >> C{2,1}=[1 2 3;4 5 6;7 8 9];
l >> C{2,2}=[1 2 3 4 5 6 7 8 9];
l
l >> C
l C =
l [4.0000+ 6.0000i] \'Guangxi University\'
l [3x3 double] [1x9 double]
l
l >> celldisp
l C{1,1} =
l 4.0000 + 6.0000i
l C{2,1} =
l 1 2 3
l 4 5 6
l 7 8 9
l C{1,2} =
l Guangxi University
l C{2,2} =
l 1 2 3 4 5 6 7 8 9
l 右标志法
l >> D={4+6i}; %创立细胞数组D,与C相同
l >> D={\'Guangxi University\'};
l >> D={[1 2 3;4 5 6;7 8 9]};
l >> D={[1 2 3 4 5 6 7 8 9]};
l >> D
l D =
l [4.0000+ 6.0000i] \'Guangxi niversity\'
l [3x3 double] [1x9 double]
l >> celldisp
l D{1,1} =
l 4.0000 + 6.0000i
l D{2,1} =
l 1 2 3
l 4 5 6
l 7 8 9
l D{1,2} =
l Guangxi University
l D{2,2} =
l 1 2 3 4 5 6 7 8 9
l >> E=C{2,1}
l E =
l 1 2 3
l 4 5 6
l 7 8 9
l >> F=C{2,1}
l F =
l 7
l >> F=C{1,2}
l F =
l g
l 直接输入法
l >> G={4+6*i,‘Guangxi University’;[1 2 3;4 5 6;7 8 9],[1 2 3 4 5 6 7 8 9]} %与C,D相同,与一般数组相同
l G =
l [4.0000 + 6.0000i] \'Guangxi University\'
l [3x3 double] [1x9 double]
l >> H={\'Boy\';\'Girl\'}
l H =
l \'Boy\'
l \'Girl\'
l >> GH=[G,H] %细胞数组的合并,与一般数组相同
l GH =
l [4.0000 + 6.0000i] \'Guangxi University\' \'Boy\'
l [3x3 double] [1x9 double] \'Girl\'
l >> GH{:} %将数组每一一个元素显示出来
l ans =
l 4.0000 + 6.0000i
l ans =
l 1 2 3
l 4 5 6
l 7 8 9
l ans =
l Guangxi University
l ans =
l 1 2 3 4 5 6 7 8 9
l ans =
l Boy
l ans =
l Girl
l 2. 结构数组(structer)
l 每一一个结构数组包括数个字段,而各个字段包括各个不同的类型的数据,例如下面是包括学生资料的结构数组
l >> student.name=\'李小二\'
l student =
l name: \'李小二\'
l >> student.id=\'200601\';
l >> student.scores=‘[60 70 80]’; %字符串
l >> student
l student =
l name: \'李小二\'
l id: \'200601\'
l scores: \'[60 70 80]\'
l >> student.scores=[60 70 80]; %扭转成就数据类型
l >> student
l student =
l name: \'李小二\'
l id: \'200601\'
l scores: [60 70 80]
l >> student.scores=\'[60 70 80]\';
l >> Student=struct %另外一办法创立结构数组,注意字母大小写,与前面的student不同
l Student =
l name: \'李大三\'
l id: \'200602\'
l scores: [72 34 89]
l >> student.name=‘王五’; %追加元素
l >> student.id=\'200602\';
l >> student.scores=\'[83 99 100]\';
l >> student
l student =
l 1x2 struct array with fields:
l name
l id
l scores
l >> student
l ans =
l name: \'李小二\'
l id: \'200601\'
l scores: \'[60 70 80]\'
l >> student
l ans =
l name: \'王五\'
l id: \'200602\'
l scores: \'[83 99 100]\'
l >> student=struct;
l
l >> student
l ans =
l name: \'小周\'
l id: \'200603\'
l scores: \'[92 95 94]\'
幻灯片35
l >> student.scores %成就以字符串情势给出,想一想为何显示如下结果?
l ans =
l 9
l >> student.scores
l ans =
l 2
l >> student.scores=[92 95 94]
l >> student
l ans =
l name: \'小周\'
l id: \'200603\'
l scores: [92 95 94]
l student.scores
l ans =
l 95
l >> all_names=[student.name]
l all_names =
l 李小二王五小周
l >> all_scores=[student.scores]
l all_scores =
l [60 70 80][83 99 100]\\_^
l >> student.scores=[60 70 80]; %修改为绩属性
l >> student.scores=[83 99 100]
l student =
l 1x3 struct array with fields:
l name
l id
l scores
l >> student.scores=[30 75 89];
l >> all_scores=[student.scores]
l all_scores =
l 30 75 89 83 99 100 60 70 80
l >> cat %并排数组,1表示上下并排.
l ans =
l 30 75 89
l 83 99 100
l 60 70 80
l >> cat %水平排列
l ans =
l 30 75 89 83 99 100 60 70 80
l >> student.scores=77 %追加一门成就
l >> student
l ans =
l name: \'李小二\'
l id: \'200601\'
l scores: [30 75 89 77]
l >> student.scores=88
l >> student.scores=99;
l >> all_scores=[student.scores]
l all_scores =
l 30 75 89 77 83 99 100 88 60 70 80 99
l >> cat
l ans =
l 30 75 89 77
l 83 99 100 88
l 60 70 80 99
l >> average1=mean) %计算列平均值
l average1 =
l 57.6667 81.3333 89.6667 88.0000
l >> average2=mean‘) %计算行平均值
l
l average2 =
l 67.7500 92.5000 77.2500
l >> fieldnames %显示字段
l ans =
l \'name\'
l \'id\'
l \'scores\'
l >> student.age=20 %追加字段并赋值
l student =
l 1x3 struct array with fields:
l name
l id
l scores
l age
l >> student
l ans =
l name: \'王五\'
l id: \'200602\'
l scores: [83 99 100 88]
l age: 20
l >> student
l ans =
l name: \'李小二\'
l id: \'200601\'
l scores: [30 75 89 77]
l age: [] %没有赋值
l >> student.age=19
l student =
l 1x3 struct array with fields:
l name
l id
l scores
l age
l >> student
l ans =
l name: \'李小二\'
l id: \'200601\'
l scores: [30 75 89 77]
l age: 19
l >> student.age=23;
l >> student
l ans =
l name: \'小周\'
l id: \'200603\'
l scores: [60 70 80 99]
l age: 23
l >> Student=rmfield %删除了一个字段
l Student =
l 1x3 struct array with fields:
l name
l id
l scores
l >> Student
l ans =
l name: \'李小二\'
l id: \'200601\'
l scores: [30 75 89 77]
以上就是微观生活(93wg.com)关于“Matlab程序设计基础”的详细内容,希望对大家有所帮助!
评论