第6讲 MATLAB程序设计基础1Word下载.docx
- 文档编号:14334548
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:15
- 大小:31.14KB
第6讲 MATLAB程序设计基础1Word下载.docx
《第6讲 MATLAB程序设计基础1Word下载.docx》由会员分享,可在线阅读,更多相关《第6讲 MATLAB程序设计基础1Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
2、函数体。
是所有计算过程和输入输出参数赋值的MATLAB代码。
3、注释。
注释语句以“%”开头,可以出现在M文件的任何地方。
%后的部分为不执行部分。
注:
1)M函数返回参数多于一个变量时,应使用方括号;
2)输入变量多于一个时,用“,”隔开;
3)函数名与M文件名应同名;
4)一个函数文件只能定义一个M函数。
【例6.1-1】建立函数文件ex5_1.m
functiony=ex5_1(t)%函数定义行
y=sin(t).*exp(-t);
%函数体
(注意:
文件名一定用ex5_1)
调用(另编一个程序,或在命令窗口输入):
t=0:
pi/50:
pi;
y=ex5_1(t);
%函数调用
plot(t,y);
【例6.1-2】建立函数文件ex5_2.m
functiony=ex5_2(a,t)
ifa==1
y=sin(t);
elseifa==2
y=sin(t).*exp(-t);
else
y=cos(t).*sin(t);
end
调用:
a=1;
y=ex5_2(a,t);
【例6.1-3】建立函数文件ex5_3.m,该函数在ex5_3m.m中调用
function[y1,y2,y3]=ex5_3(t)
y1=sin(t);
y2=sin(t).*exp(-t);
y3=cos(t).*sin(t);
functionex5_3m(t)
x=sin(t);
[s1,s2,s3]=ex5_3(x);
plot(t,s1,t,s2,t,s3);
调用程序:
clear;
ex5_3m(t);
6.2变量与数据类型
1、变量
变量是任何程序设计语言的基本单位。
与一般程序设计语言不同的是,MATLAB语言并不要求事先对所使用的变量进行声明,也不需要指定变量类型,MATLAB语言自动依据变量值或对变量操作来识别变量类型。
在赋值过程中,如果赋值变量已经存在,MATLAB语言将使用新值代替旧值,并以新值类型代替旧值类型。
1)变量名区分大小写;
2)变量名必须以字母开头,不能超过31位;
3)变量存在作用区域。
在未加特殊说明的情况下,变量为局部变量,即仅在其使用的M文件内有效;
要将变量定义为全局变量,应当对变量进行说明,即在变量名前加关键字global。
2、数据类型
double双精度浮点型
single单精度浮点型
float单精度或双精度浮点型
int8有符号8位整型-27to27-1
int16有符号16位整型-215to215-1
int32有符号32位整型-231to231-1
int64有符号64位整型-263to263-1
unit8无符号8位整型0to28-1
unit16无符号16位整型0to216-1
unit32无符号32位整型0to232-1
unit64无符号64位整型0to264-1
char字符型
logical逻辑型0or1
cell细胞数组
struct结构数组
6.3细胞数组与结构数组
1、细胞数组
细胞数组是以单元为元素的数组,每个元素成为单元,每个单元可以包含其他类型数组,如:
矩阵、字符串、复数。
细胞数组由{}创建,其数据通过数组下标引用。
【例6.3-1】建立1个2×
2的细胞数组。
a(1,1)={3+2i};
a(1,2)={'
time'
};
a(2,1)={[123]};
a(2,2)={[1.234;
2.456;
3.789]};
>
a
运行结果:
a=
[3.0000+2.0000i]'
[1x3double][3x1double]
a(2,2)
ans=
[3x1double]
a{2,2}
ans=
1.2340
2.4560
3.7890
【例6.3-2】建立1个1×
3的细胞数组。
b={'
name'
[2;
3;
4]2+5i};
b
b=
'
[3x1double][2.0000+5.0000i]
2、结构数组
结构数组是根据属性域(field)组织起来的不同类型数据的集合。
结构数组的任何一个属性域可以包括不同数据类型,如字符串、矩阵、标量等。
创建格式:
1)s=struct(‘field1’,{},’field2’,{},……)
表示建立一个空的结构数组,不含数据;
2)s=struct('
field1'
values1,'
field2'
values2,'
field3'
values3,…)
表示建立一个具有属性域和数据的结构数组。
【例6.3-3】结构数组student=struct('
{'
Liu'
'
Wang'
},'
Age'
20'
21'
});
求student
(1)、student
(2)、student.name。
student=struct('
student
(1)
name:
Age:
student
(2)
student.name
Liu
Wang
student
(2).name
student
student=
1x2structarraywithfields:
name
Age
student(3).name=’Song’;
student(3)
Song'
[]
6.4运算符
1、算数运算符
+、-、*、.*、^、.^、\、.\、/、./;
2、关系运算符
==(等于)、~=(不等于)、>
(大于)、>
=(大于等于)、<
(小于)、<
=(小于等于)。
说明:
关系运算符主要用来对矩阵与数、矩阵与矩阵进行比较,返回二者的关系,1表示满足指定关系,0表示不满足指定关系。
例:
矩阵a=[12;
23],求a中等于2的元素的个数n。
a=[12;
23];
b=a==2
b=
01
10
n=sum(sum(b))
n=
2
3、逻辑运算符
&
(逻辑与)、|(逻辑或)、~(逻辑非)、xor(逻辑异或);
MATLAB中,所有非零数值均被认为为真,零为假;
在逻辑判断结果中,判断为真时输出“1”,判断为假时输出“0”。
矩阵a=[11;
01],b=[01;
00],c=0,求c1=a﹠c,c2=a|c,c3=xor(a,b),c4=~a
a=[11;
01];
b=[01;
00];
c=0;
c1=a&
c
00
c2=a|c
11
c3=xor(a,b)
c4=~a
考虑:
如果,a=[32;
04],b=[05;
00],结果又如何?
6.5程序结构
6.5.1顺序结构
顺序结构是由简单的赋值语句和函数组成的最简单的控制语句。
在程序执行时按照顺序从头至尾地执行程序中的各条语句。
顺序结构一般不包含其他任何子语句或控制语句,也不需要用户输入任何参数。
y1=sin(t);
y2=sin(t).*exp(-t);
y3=cos(t).*sin(t);
plot(y1);
holdon;
plot(t,y2);
plot(t,y1,'
b:
'
t,y2,'
gx'
t,y3,'
ro'
holdoff;
axis([01001]);
axis([010-11]);
6.5.2分支结构
6.5.2.1条件语句(if-else-end)
共有五种调用格式:
1)if<
逻辑表达式>
%if与后面的逻辑表达式之间必须至少要有一个空格
<
语句体>
end
2)if<
语句体1>
else
语句体2>
3)if<
逻辑表达式1>
elseif<
逻辑表达式2>
4)if<
逻辑表达式3>
语句体3>
……
else
语句体n>
5)if<
if<
<
else
end
……
设有一分段函数,试编写函数程序和调用程序,求其函数值。
程序文件fun1.m文件:
functiony=fun1(x)
%UNTITLED1Summaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
ifx<
y=x.^2;
elseifx>
=0&
x<
=2
y=2-3*x;
2&
4
y=sin(2*x);
=4
y=exp(2*x);
调用文件order1.m:
x=2;
y=fun1
(2)
x=0:
0.1:
2;
y=fun1(x);
plot(x,y,'
-r'
【例6.5.2-1】
fname=input('
inputFunctionname='
iffname=='
sin'
y=exp(t);
plot(t
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第6讲 MATLAB程序设计基础1 MATLAB 程序设计 基础
![提示](https://static.bdocx.com/images/bang_tan.gif)