文章目录
一、基础
- -clc :清除命令窗口中所有的命令
- -clear all:清楚工作区中的所有变量
- 注释:%
- -whos:可以在命令窗口查看所有详细属性信息
- 快速找到函数使用方法:在命令窗口输入:help **
例如:help sin - 中括号[]:用来存储矩阵和向量;
大括号{}:用于单元数组的分配或引用
小括号():用于引用数组元素
二、MATLAB变量命名规则
- 变量名区分大小写
- 变量名以字母开头 ,可以由字母、数字和下划线组成,但不可以使用标点
- 变量名长度不超过63位
- 变量名应该简洁明了,看名知其意
三、MATLAB数据类型
数字
有符号整型:int
无符号整型:uint
单精度浮点型:single
双精度浮点型(默认情况下)
逻辑性:true or false
数值转换为逻辑值:只有0才能转换为逻辑假,其他值都为真
a=45
alogical=logical(a) %logical(*):将*转换成逻辑值
字符与字符串
matlab中不区分字符和字符串。
1个字符=两个字节。
zifu = 'a'
abs(zifu) %转换为ASCI
char(65) %转换为字母
zhuan = num2str(65) %将数字转换为字符串
str = 'i am xxx' %求字符串长度
length(str)
矩阵
A = [1 2 3; 4 5 6; 7 8 9] %定义矩阵
B = A' %转置A矩阵
C = A(:) %变成一列
D = inv(A) %A的逆矩阵
A * D %两矩阵相乘
元胞数组
A = cell(1, 6) %表示定义一个一行六列的元胞数组A
A{2} = eye(3)
A{5} = magic(5) %魔方
B = A{5}
B = A{2}
运行结果:
结构体
books = struct('name',{{'dashen','daxian'}},'price',[30 40]) %定义
books.name
books.name(1)
books.name{1}
运行结果:
四、数据类型的强制转换以及查看数值范围
- 强制转换
在matlab中,数值默认类型为双精度浮点型。
a = 66
b = int8(a) %双精度浮点型强制转换为整型
c = 'xuexi'
d = int16(c) %字符串型强制转换为int型
e = 14.89
f = single(e) %双精度强制转换为单精度
- 查看数值范围
singlew=[realmin('single') realmax('single')] %查看单精度的范围
doublew=[realmin('double') realmax('double')] %查看双精度的范围
- 修改数据显示的格式
matlab默认是以format short所显示数据的,即只显示小数点的后四位。
a = 56.987537283397789123
format short
a
format long
a
format long e
a
format short e
a
format bank
a
format short %回到系统默认模式
五、取整函数
- round函数:最近取整数,0.5为临界条件
a=round(8.5) %结果:9
b=round(-6.5) %结果:-7
c=round(-6.4) %结果:-6
- fix函数:向0取整
d=fix(-1.6) %结果:-1
e=fix(-1.5) %结果:-1
- floor函数:小于或者等于该数的接近整数
f=floor(2.7) %结果:2
g=floor(-2.4) %结果:-3
- ceil函数:大于或者等于该数的接近整数
h=ceil(4.2) %结果:5
i=ceil(-4.4) %结果:-4
六、复试的使用
fu=3+4i
real1=real(fu) %求复数的实部
imag1=imag(fu) %求复数的虚部
abs1=abs(fu) %求复数的模
angle1=angle(fu) %求复数的角度
gonge=conj(fu) %求复数的共轭复数
七、函数句柄
例1:
f1=@cos %调用f1就相当于调用cos函数
t=0:pi/4:pi
f1(t)
运行结果:
例2:
f1=@char %函数句柄
s1=func2str(f1) %将函数句柄转换成字符串
f2=str2func(s1) %将字符串转换成函数句柄
functions(f1) %返回包含函数信息的结构体变量
isa(f1,'function_handle') %判断是否是函数句柄
isequal(f1,f2) %检测两个函数句柄是否为同一函数
八、单元数组
- 单元数组的一般建立方法
c={'dd','dx';[5 4 7 8 3],7} %两行两列,每个元素的类型都可以不一样
c{1,1}
c{2,1}
c{2,2}=[] %赋空
运行结果:
- 使用cell()函数建立单元数组
c=cell(3,3) %3*3的单元数组,默认为空
c{1,1}=[1:3;3:5] %:默认间距是1
c{2,2}='dd'
- 使用函数celldisp()显示单元数组
celldisp(c) %单独显示单元数组的元素
celldisp(c,'dd') %改变一个名称显示
- 图形化显示单元数组
clear all;
c={'dd','dx';[1:6],77}
figure;
out=cellplot(c,'legend') %图形化显示
- 单元数组的扩张与缩减
c={'dd','dx';[1:6;2:7],7} %两行两列的单元数组
c{2,4}=3 %单元数组的扩充,扩充为两行四列,其中第二行第四列为3
c(1,:) %第一行元素
c(:,3)=[] %通过对整列复制为空就可以删除第三行
d={'dd','ds';[],44}
e=[c,d] %单元数组的合并
e(2,:)=[] %通过对整行复制为空就可以删除第二行
- 将矩阵转换为单元数组
a=[4 6 8;6 6 7]
c=num2cell(a) %将矩阵转换成单元数组
iscell(a) %判断是否为单元数组
iscell(c)
- 将单元数组转换成结构体变量
clear all;
c={'dd',170,20}
fileds={'name','shengg','salary'} %结构体变量的成员
s=cell2struct(c,fileds,2) %将单元数组转换成结构体变量
九、结构体
- 创建结构体变量
s1=struct('fengge',{'big,','little'},'yanse',{'blue'},'shuju',{[8 8 9;7 6 5] [1:9]})
diyi=s1(1) %第一个成员值
dier=s1(2)
- 删除结构体成员变量
shan2=rmfield(s1,'yanse')
shan2and3=rmfield(s1,{'yanse','shuju'})
- 判断是否为结构体变量,是否为结构体变量成员
s=struct('hehe',1,'haha',2)
f1=isstruct(s) %结果:1
f2=isfield(s,'hehe') %结果:1
f3=isfield(s,'hee') %结果:0
f4=isfield(s,{'hehe','pipi','haha'}) %结果:1 0 1