MATLAB笔记

变量类型里和数据类型

clear all; //清除工作区的所有变量
clc;//清除命令行窗口的所有命令

变量名区分大小写,强调变量名长度不超过63位,个人建议不超过10位
变量名以字母开头,可以由字母,数字,下划线组成,但不能使用标点
有符号整型:int8(2),int16(2)
无符号整型:uint32(20),uint64(20)
单精度浮点型:single(1.6)
没有指定类型时:默认为双精度浮点型
逻辑型:one=true(实际上存的值是1)
字符串型:two=‘fdcbb’
结构体:three.name=‘fgfhgb’
函数句柄类型:four=@cos

%%whos 输入到命令窗口可以查看详细属性

shu=66;%默认双精度浮点型
shu8=int8(shu)%强制转换
shu16=int16(shu)
shu32=int32(shu)

zifuchuan=‘daxian’
huan1=int8(zifuchuan)

fudian=14.89
fusingle=single(fudian)
fudouble=double(fudian)

查看数据类型的数值范围
singlefanwei=[realmin(‘single’) realmax(‘single’)]
doublefanwei=[realmin(‘double’) ranlmax(‘double’)]

zifu=‘a’
abs(zifu) %转换成ASCI码
char(65) %转换成字母,代表A
转换=num2str(65)%将数字转换成字符串
doc num2str %遇到不懂的函数直接查一下
str=‘I am a student’
length(str) %字符串长度

数值取整
round1=round(8.5) %最接近取整,0.5为临界条件
round2=round(-6.4)
round3=round(-6.5)
fix1=fix(-1.6) %向0取整
fix2=fix(-1.5)
floor1=floor(2.7) %小于或等于该数的接近整数
floor=floor(-2.4)
ceil1=ceil(4.2) %大于或等于该数的接近整数
ceil2=ceil(-4.1)

矩阵

jvzhen=rand(6,9) %矩阵随机生成6行9列0-1的矩阵
rows=size(jvzhen,1)%矩阵有几行
cols=size(jvzhen,2)%矩阵有几列
A=[3,6,2;6,5,6;8,7,9]
B=A’ %转置矩阵
C=A ( : ) %变成一列
D=inv(A) %逆矩阵
A*D%矩阵相乘

一个比较复杂的结构体

books=struct(‘name’,{{‘daxia’,‘dashen’}},‘price’,[30 40])
books.name
books.name(1)%输出的由引号
books.name{1}%输出的没有那两个引号

复数

fushu1=3+4i
real1=real(fushu) %求复数的实部
image1=image(fushu) %求复数的虚部
abs1=abs(fushu) %求复数的模
angle1=angle(fushu) %求复数的角度
gonge=conj(复数)%求复数的共轭复数

数据显示格式的设定

clear all;
format short
xiaoshu=56.9855511233
format short
xiaoshu %默认类型,小数点后显示四位
format long
xiaoshu %几乎小鼠后面全都显示出来甚至于会补零
format long e
xiaoshu
format short e
xiaoshu
format bank
xiaoshu
format +
xiaoshu
format rational
xiaoshu

逻辑真假

clear all;
luoji1=true
luoji2=false
luoji3=true(3,4)%三行四列
luoji4=false(3)%三行三列

将数值转换成逻辑值,只有零才会转换成逻辑假,其他值全是真
clear all;
a=45
alogical=logical(a)
b=0
blogical=logical(b)
c=[4.1 -9 0;7 0 1;0.5 3 6]
clogical=logical©

matlab中不区分字符和字符串,个字符个字节
clear all;
a1=‘MY NAME IS A’
a2=char([68 66])
a3=int8((‘daxian’)
a4=‘大’

函数句柄

clear all;
f1=@cos
t=0:pi/4:pi %t是从0到Π,步伐是Π/4
f1(t)
f2=@complex
f2(6,2)

clear all;
f1=@char
s1=func2str(f1)%将函数句柄转换成字符串
f2=str2func(s1)%将字符串转换成函数句柄
functions(f1)%返回包含函数信息的的结构体变量
isa(f1,‘function_handle’)%判断是否是函数句柄
isequal(f1,f2)%检测两个函数句柄是不是同一函数

单元数组

A=cell(1,6) %一行六列
A{2}=eye(3)%在A{2}处创建一个3*3的矩阵
A{5}=magic(5)%在A{5}处创建一个五行五列的魔方矩阵
B=A{5}
C=A{2}

单元数组的一般建立方法
clear all;
c={‘大仙’,’daxian‘;[5 4 7 8 9],7}
c{1,1}
c{2,1}
c{2,2}=[ ]%c{2,2}取空

使用函数创建单元数组
c=cell(3,3)%默认为空
c{1,1}=[1:3,3:5]
c{2,2}=‘daxian’
c{2,3}=‘yiqintang’
c{2,1}=3

使用函数显示单元数组
celldisp©%单独显示单元数组的元素,就是一个一个显示
celldisp(c,‘daxiancell’)%改一个名称显示

图形化显示单元数组
clear all;
c={'大仙’,‘daxian’,[1:6],77}
figure;
out=cellplot(c,‘legend’)%图形化显示,带注释

单元数组的扩张和缩减
clear all;
c={‘大仙’,‘daxian’;[1:6;2:7],5}
c{2,4}=3 %单元数组的扩充
c(1,:) %第一行元素
c(:,3) %通过对整列赋值为空就可以删除第三列
d={‘大神’,‘dashen’;[],44}
e=[c,d] %单元数组的合并
e(2,:)=[] %通过对整行赋值为空就可以删除第二行

将矩阵转换为单元数组
clear all;
a=[4 6 8;6 6 7]
c=num2cell(a) %将矩阵转换为单元数组
iscell(a) %判断是不是单元数组
iscell©

将单元数组转换为结构体变量
clear all;
c={‘daxian’.170,20}
fields={‘name’,‘shengao’,‘salary’} %结构体变量的成员
s=cell2struct{c,fields,2} %将单元数组转换为结构体变量

结构体变量

创建结构体变量
clear all;
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)
f2=isfield(s,‘hehe’)
f3=isfield(s,{‘hehhe’,‘haha’})

按照某种方式获取成员变量
clear all;
s=struct(‘da’,0,‘xian’,1,‘yi’,2,‘pin’,3)
f1=fieldnames(s) %获取成员变量的名称
f2=orderfields(s) %按照成员变量的字母顺序排列

获取某个实际成员变量的值

clear all;
s=struct(‘xingmingg’,{‘daxian’,‘dashen’},‘xingbie’,{‘nan’,‘nv’},'fenshu,[67 90 99]);
s(1).xingming
s(1).xingbie
s(1).fenshu
s(1).fenshu(3)
pingjunfen=mean(s(1).fenshu)
zuigaofen=max(s(1).fenshu)

使用函数来获取成员变量的值
clear all;
s1=struct(‘haha’,8,‘hehe’,9)
f1=getfield(s1,‘haha’)

使用函数对成员变量重新赋值
clear all;
s1=struct(‘haha’,7,‘hehe’,8)
s2=setfield(s1,‘haha’,9)

将结构体变量转换成单元数组
clear all;
s(1).name=‘daxian’;
s(1).sex=‘nan’;
s(1).salsry=20;
s(2).name=‘dashen’;
c=struct2cell(s)

经常使用的运算方法

大于,小于,等于,不等于
clear all;
a=7>5
b1=rand(2,2)
b2=b1>=0.6
b3=b1<=0.7
c1=eq(b2,b3) %判断是否相等
c2=b2~=b3

比较大小
clear all;
format long;
a=4.44+eps
b=4.44
c1=a==b
c2=a>b
c3=abs(a-b)<1e-10 %a-b的绝对值是否小于10的负十次方
format short; %恢复显示的默认格式

与或非
clear all;
A=rand(2,2)
B=A>0.8
c=A<0.2
d1=B&C
d2=B|C
d3=~B
d4=xor(B,C) %异或

clear all;
a=0;
(a>0)&&(6/a>3) %快速逻辑与,如果第一个条件不满足就不会看第二个条件
逻辑与是即使第二个条件不满足也会看第二个条件

clear all;
a=12
b=56
c1=dec2bin(a) %转换为二进制数
c2=dec2bin(b)
d1=bitand(a,b) %按位与
d2=bitor(a,b) %按位或

运算顺序
加括号
先乘法,再比较
先乘法,再形成随机矩阵
先乘方再乘法

求积分

单积分
quad函数求积分,单变量数值积分求解
clear all;
syms x;
f=inline(‘1./(sin(x)+exp(-x.^2))’) %内联函数
y=quad(f,0,1.1) %积分求解
y1=quad(@myfun1,0,1.1) %函数句柄————>需要有一个mufun1的文件存我们的函数
y2=quad(@myfunc1,0,1.1,1.e-10) %相比于上一句多了一个精度的设置

双重积分
clear all;
syms x;
syms y;f=inline(‘xcos(y)+ysin(x)’,‘x’,‘y’)
y=dblquad(f,pi,2pi,0,pi)
y1=dblquad(@integrnd,pi,2
pi,0,pi)
y2=dblquad(@(x,y) xcos(y)+ysin(x),pi,2*pi,0,pi)

三重积分
triplequad(f,……)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐家小河沟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值