MATLAB编程基础.docx
- 文档编号:25067660
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:45
- 大小:483.58KB
MATLAB编程基础.docx
《MATLAB编程基础.docx》由会员分享,可在线阅读,更多相关《MATLAB编程基础.docx(45页珍藏版)》请在冰豆网上搜索。
MATLAB编程基础
变量:
1、变量的命名
>>iskeyword
ans=
'break'
'case'
'catch'
'continue'
'else'
'elseif'
'end'
'for'
'function'
'global'
'if'
'otherwise'
'persistent'
'return'
'switch'
'try'
'while'
>>isvarname('While')
ans=
1
2、特殊变量
>>pi
ans=
3.1416
>>i
ans=
0+1.0000i
>>i=10,j=25
i=
10
j=
25
>>1/0
Warning:
Dividebyzero.
ans=
Inf
3、局部变量
functionaverage()
intn;
intm=0;
floatp;
fori=1:
n
m=m*i;
end
p=m/n;
4、全局变量
>>globallengthwidth
>>length=5;
>>width=6;
>>s=length*width
s=
30
数据类型:
1、整数
>>x=int16(32501);
>>str='HelloMATLAB';
>>int16(str)
ans=
7210110810811132776584766566
>>whosx
NameSizeBytesClass
x1x12int16array
Grandtotalis1elementusing2bytes
>>typel=class(x)
typel=
int16
>>isinteger(x)
ans=
1
2、浮点数据
>>realmax+.0001e+308
ans=
Inf
>>-realmax-.0001e+308
ans=
-Inf
>>x=22
x=
22
>>y=int8(x)
y=
22
>>z=double(y)
z=
22
>>whosxyz
NameSizeBytesClass
x1x18doublearray
y1x11int8array
z1x18doublearray
Grandtotalis3elementsusing17bytes
>>isfloat(z)
ans=
1
>>isfloat(y)
ans=
0
>>x=int64(-9754452145)
x=
-9754452145
>>y=double(x)
y=
-9.7545e+009
>>z=single(y)
z=
-9.7545e+009
>>isfloat(z)
ans=
1
>>whosxyz
NameSizeBytesClass
x1x18int64array
y1x18doublearray
z1x14singlearray
Grandtotalis3elementsusing20bytes
>>pi
ans=
3.1416
>>formatlong
>>pi
ans=
3.14159265358979
>>formatshortg
>>pi
ans=
3.1416
>>formatshorte
>>pi
ans=
3.1416e+000
>>formatlonge
>>pi
ans=
3.141592653589793e+000
>>formathex
>>pi
ans=
400921fb54442d18
>>formatrat
>>pi
ans=
355/113
复数:
>>x=rand(3)
x=
0.950130.485980.45647
0.231140.89130.018504
0.606840.76210.82141
>>y=rand(3)*-3
y=
-1.3341-2.7654-1.2171
-1.8463-2.2146-2.8064
-2.3758-0.5288-2.7507
>>z=complex(x,y)
z=
0.95013-1.3341i0.48598-2.7654i0.45647-1.2171i
0.23114-1.8463i0.8913-2.2146i0.018504-2.8064i
0.60684-2.3758i0.7621-0.5288i0.82141-2.7507i
>>zr=real(z)
zr=
0.950130.485980.45647
0.231140.89130.018504
0.606840.76210.82141
>>zi=imag(z)
zi=
-1.3341-2.7654-1.2171
-1.8463-2.2146-2.8064
-2.3758-0.5288-2.7507
>>za=abs(z)
za=
1.63792.80781.2999
1.86072.38732.8065
2.45210.927592.8707
>>zn=angle(z)
zn=
-0.95194-1.3968-1.212
-1.4463-1.1882-1.5642
-1.3207-0.6066-1.2806
无穷大数
>>x=1/0
Warning:
Dividebyzero.
x=
Inf
>>y=1.e1000
y=
Inf
>>x=log(0)
Warning:
Logofzero.
x=
-Inf
>>whosxyz
NameSizeBytesClass
x1x18doublearray
y1x18doublearray
Grandtotalis2elementsusing16bytes
字符型数据:
>>s='Thatisaright'
s=
Thatisaright
>>whos
NameSizeBytesClass
s1x1530chararray
Grandtotalis15elementsusing30bytes
>>S=['MATLAB';'GOOD']
?
?
?
Errorusing==>vertcat
Allrowsinthebracketedexpressionmusthavethesame
numberofcolumns.
>>S=['MATLAB';'Good']
S=
MATLAB
Good
>>whosS
NameSizeBytesClass
S2x624chararray
Grandtotalis12elementsusing24bytes
逻辑型数据:
>>6<4
ans=
0
>>rand(3)>0.8
ans=
000
110
000
>>x=[truefalsetruetrue]
x=
1011
>>y=magic(5)
y=
17241815
23571416
46132022
101219213
11182529
>>y>9
ans=
11001
10011
00111
11110
11100
数组:
1、数组的创建
>>A=[5870117]
A=
5870117
>>B=[397;1284]
B=
397
1284
>>x=(1:
2:
12)
x=
1357911
>>x=10:
-2:
0
x=
1086420
>>x=linspace(1,3,15)
x=
Columns1through9
11.14291.28571.42861.57141.71431.857122.1429
Columns10through15
2.28572.42862.57142.71432.85713
>>y=logspace(1,10,12)
y=
Columns1through9
1065.793432.882848187381.2328e+0058.1113e+0055.3367e+0063.5112e+007
Columns10through12
2.3101e+0081.5199e+0091e+010
2、多维数组的创建
>>A=rand(3)
A=
0.603790.0152740.93181
0.272190.746790.46599
0.198810.44510.41865
>>A(:
:
1)
ans=
0.603790.0152740.93181
0.272190.746790.46599
0.198810.44510.41865
>>A(:
:
2)=rand(3)
A(:
:
1)=
0.603790.0152740.93181
0.272190.746790.46599
0.198810.44510.41865
A(:
:
2)=
0.846220.672140.68128
0.525150.838120.37948
0.202650.019640.8318
>>A=randn(3,4,5)
A(:
:
1)=
-0.432560.287681.18920.17464
-1.6656-1.1465-0.037633-0.18671
0.125331.19090.327290.72579
A(:
:
2)=
-0.588320.11393-0.095648-1.3362
2.18321.0668-0.832350.71432
-0.13640.0592810.294411.6236
A(:
:
3)=
-0.69178-1.5937-0.399890.71191
0.858-1.4410.691.2902
1.2540.571150.815620.6686
A(:
:
4)=
1.1908-0.15672-1.05650.52874
-1.2025-1.60411.41510.21932
-0.019790.2573-0.80509-0.9219
A(:
:
5)=
-2.17070.614460.59128-1.0091
-0.0591880.50774-0.6436-0.019511
-1.01061.69240.38034-0.048221
利用cat函数:
Cat(dim,A1,A2)
A1,A2,...为要连接的数组,dim为连接到几维
>>A=cat(3,[357;8911;027],magic(3))
A(:
:
1)=
357
8911
027
A(:
:
2)=
816
357
492
3、数组的运算
>>x=rand(3)
x=
0.502810.304620.68222
0.709470.189650.30276
0.428890.193430.54167
>>y=x*3+2
y=
3.50842.91394.0467
4.12842.5692.9083
3.28672.58033.625
>>z=2*x./10+10
z=
10.10110.06110.136
10.14210.03810.061
10.08610.03910.108
>>A=magic(4)
A=
162313
511108
97612
414151
>>B=rand(4)
B=
0.150870.853660.821630.34197
0.69790.593560.644910.28973
0.378370.496550.817970.34119
0.860010.899770.660230.53408
>>C=A+A
C=
324626
10222016
18141224
828302
>>D=A+B
D=
16.1512.85373.821613.342
5.697911.59410.6458.2897
9.37847.49666.81812.341
4.8614.915.661.5341
>>E=A/B
E=
-38.365-54.36444.98349.661
2.4336-20.512.66616.45
-18.49-51.65433.70340.798
24.40539.098-18.129-23.383
>>F=A./B
F=
106.052.34293.651338.015
7.164418.53215.50627.612
23.78614.0977.335235.171
4.651115.5622.7191.8724
>>A=rand(3)
A=
0.727110.568070.54657
0.309290.370410.44488
0.83850.702740.69457
>>B=A^2
B=
1.16271.00761.0298
0.712480.625540.64284
1.40941.22471.2534
>>C=A.^2
C=
0.528690.322710.29874
0.095660.137210.19792
0.703080.493840.48242
>>D=A*10
D=
7.27115.68075.4657
3.09293.70414.4488
8.3857.02746.9457
>>E=exp(D)
E=
1438.2293.16236.44
22.04140.61585.524
4380.71127.11038.6
>>F=log(D)
F=
1.98391.73711.6985
1.12911.30941.4926
2.12641.94981.9381
元胞数组:
1、元胞数组的创建
1 语句直接生成:
>>r=reshape(1:
9,3,3);
>>c=[1+3i];
>>a={'MATLAB',r,c,'Wondful'}
a=
'MATLAB'[3x3double][1+3i]'Wondful'
>>whos
NameSizeBytesClass
a1x4354cellarray
c1x116doublearray(complex)
r3x372doublearray
Grandtotalis37elementsusing442bytes
2 由各个元胞创建:
>>r=reshape(1:
9,3,3);
>>c=[1+3i];
>>a=rand(3);
>>b=magic(4);
>>d(1,1)={r};d(1,2)={c};d(2,1)={a};d(2,2)={b};
>>d
d=
[3x3double][1+3i]
[3x3double][4x4double]
>>whos
NameSizeBytesClass
a3x372doublearray
b4x4128doublearray
c1x116doublearray(complex)
d2x2528cellarray
r3x372doublearray
Grandtotalis74elementsusing816bytes
3 利用函数创建:
C=cell(n):
建立一个n×n的空矩阵元胞数组c。
如果n不是标量,即产生错误。
C=cell(m,n)或c=(【m,n】):
建立一个m×n的空矩阵元胞数组c,m和n必须为标量。
C=cell(m,n,p,...)或c=cell(【mnp....】)
C=cell(size(A)):
建立一个大小与A一样的元胞数组
>>s=java_array('java.lang.String',3);
>>s
(1)=java.lang.String('one');
>>s
(2)=java.lang.String('two');
>>s(3)=java.lang.String('three');
>>c=cell(s)
c=
'one'
'two'
'three'
元胞数组的显示:
1)显示元胞数组:
Celldisp(c);以列顺序显示元胞数组c的内容
>>r=reshape(1:
9,3,3);
>>c=[1+3i];
>>a=rand(3);
>>b=magic(4);
>>d(1,1)={r};d(1,2)={c};d(2,1)={a};d(2,2)={b};
>>celldisp(d)
d{1,1}=
147
258
369
d{2,1}=
0.875740.0117570.29872
0.737310.89390.66144
0.136520.199140.28441
d{1,2}=
1+3i
d{2,2}=
162313
511108
97612
414151
2)显示元胞数组结构:
>>c{1,1}='2-by-2';
>>c{1,2}='eigenvaluesofeye
(2)';
>>c{2,1}=eye
(2);
>>c{2,2}=eig(eye
(2));
>>cellplot(c)
3、元胞数组函数
>>a=rand(3)
a=
0.579810.640530.78333
0.760370.209070.68085
0.529820.379820.4611
>>b=num2cell(a)
b=
[0.57981][0.64053][0.78333]
[0.76037][0.20907][0.68085]
[0.52982][0.37982][0.4611]
>>celldisp(b)
b{1,1}=
0.57981
b{2,1}=
0.76037
b{3,1}=
0.52982
b{1,2}=
0.64053
b{2,2}=
0.20907
b{3,2}=
0.37982
b{1,3}=
0.78333
b{2,3}=
0.68085
b{3,3}=
0.4611
>>a={[1][234];[5;9][678;101112]}
a=
[1][1x3double]
[2x1double][2x3double]
>>celldisp(a)
a{1,1}=
1
a{2,1}=
5
9
a{1,2}=
234
a{2,2}=
678
101112
结构数组:
1、结构数组的创建:
1 赋值法创建
>>book.name='MATLAB';
>>book.pages=450;
>>book.date=20111205;
>>book
book=
name:
'MATLAB'
pages:
450
date:
20111205
>>whos
NameSizeBytesClass
book1x1400structarray
Grandtotalis11elementsusing400bytes
2 利用函数法创建
S=struct(‘f1’,v1,’f2’,v2,...);f表示字段名。
V表示对应于f的字段值
S=struct(‘f1’,{},’f2’,{},...);用指定字段f1,f2等建立一个空结构。
S=struct([]);建立一个没有字段的空结构。
S=struct(obj);将对象obj转换为它的等价结构。
>>s=struct('type',{'big','little'},'color',{'red'},'x',{34})
s=
1x2structarraywithfields:
type
color
x
>>s
(1)
ans=
type:
'big'
color:
'red'
x:
3
>>s
(2)
ans=
type:
'little'
color:
'red'
x:
4
2、结构数组函数:
>>book.name='MATLAB';
>>book.pages=450;
>>book.date=20111205;
>>book.zuozhe='ABBCD';
>>book.length=22;
>>book
book=
name:
'MATLAB'
pages:
450
date:
20111205
zuozhe:
'ABBCD'
length:
22
>>A=book
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 编程 基础