Matlab程序设计基础

小微 科技Matlab程序设计基础已关闭评论127字数 6016阅读模式
摘要l 2.1 常量与变量l 2.1.1 特殊常量l l >> eps %浮点相对于于精度l ans =l 2.2204e-016l >> pi %圆周率l a...

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程序设计基础”的详细内容,希望对大家有所帮助!

继续阅读
 
小微
  • 版权声明: 本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们(管理员邮箱:81118366@qq.com),情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
  • 转载请务必保留本文链接:https://93wg.com/4154.html