1、MATLAB的简介
略略略
关于这个。。
你为什么不去问问神奇的海螺呢?
初学这个的话首先要知道MATLAB的帮助系统是相当强大的,对于任何学习使用MATLAB的人都应该熟练地掌握它的使用。
2、MATLAB的数据类型
MATLAB共有15中数据类型:包含八种整数类型 和 单精度浮点类型、双精度浮点类型、逻辑型、单元组型、结构体类型、字符串类型 以及 函数句柄。 总的来说,和C的语法还是相当类似的。
CSDN好像没有提供MATLAB的代码片段格式,大家见谅!
例如下面的一段代码
clear all;
a1=int8(6)
a2=int16(-20)
a3=uint32(100)
a4=uint64(200)
b1=single(3.5)
b2=12
c1=true
c2{1,1}=100
c3='hello'
c4.name='robin'
d=@cos
我们在命令行窗口输入whos 会有它们的数据类型
当我们不知道这里的c2的cell类型是什么意思时
我们可以在命令行输入help cell 即可获得cell的相关描述
帮助系统的功能不可谓不强大!!
这里数据类型形式和C语言高度类似,这里就不做过多的介绍。
倒是MATLAB的取整函数还是有点意思的,我们这里来看一下:浮点数的取整函数共有4种,分别是round、fix、floor和ceil。
其中,
round是向最接近的整数取整,如果小数为0.5则取绝对值大的整数;
fix是向零取整;
floor是取不大于该数的最近整数;
ceil是取不小于该数的最近整数。
这些从英文单词的字面意思上便可以清楚明白。
这里我们也给出示例
clear all;
a1=round(2.5)
a2=round(-2.4)
a3=round(-2.5)
b1=fix(-3.6)
b2=fix(-3.5)
c1=floor(4.9)
c2=floor(-4.2)
d1=ceil(4.2)
d2=ceil(-4.4)
结果为:
a1 = 3
a2 = -2
a3 = -3
b1 = -3
b2 = -3
c1 = 4
c2 = -5
d1 = 5
d2 = -4
2.1、关于复数
复数是对实数的补充,包含实部和虚部两部分。我们可以使用赋值语句产生复数,也可以使用complex()函数来产生复数。
下面来看看复数的常用函数:
complex(a,b) 构建复数,a为实部,b为虚部
real (z)得到复数z的实部
imag (z)得到复数z的虚部
abs (z)得到复数z的模
angle (z)得到复数的角度
conj (z)得到复数的共轭复数
2.2、数据的显示格式
可以通过format()函数改变数据的显示格式,并且会一直有效,直到下一次再次使用format()函数
这个内容在这里不做过多的讲解,感兴趣的有需要的又可以自己去了解哦!
2.3、逻辑类型
这里的知识点和C语言部分的高度相似,我们不做过多的介绍,我们主要看一个例子了解一下它和C语言部分的异同即可:
clear all;
a1=true
a2=false
a3=true(3,4)
a4=false(3)
结果为:
从这里我们看出,a3和a4分别是一个34和33的逻辑数组,这是一个比较有特色的地方
MATLAB中还可以使用logical()函数将一些数值转化为逻辑型,非零的转化为1,零还为零,这个与C语言部分一致。
2.4、字符和字符串
这里的内容和C语言的也差不多,唯一的区别就是MATLAB对中文有着很好的支持效果。我们拿一个例子来看一下:
clear all;
a='My name is 张三'
b=char([65 66 67 68])
c=int8('hello')
d='张'
运行结果:
这里我们看一下d,可以看出来MATLAB对于中文的支持效果。
2.5、函数句柄
这种数据结构比价特殊,在MATLAB中,通过函数句柄来间接调用函数,函数句柄的数据结构为function_handle。函数句柄可以通过符号@后跟函数名来创建。例如,fhandle=@cos,创建了函数cos()函数的函数句柄,以后就可以通过fhandle 来间接调用cos()。
这里还有一些常用的函数句柄的函数:
这里我也给出几个例子给大家看一下:
clear all;
f1=@char
s1=func2str(f1)
f2=str2func(s1)
functions(f1)
isa(f1,'function_handle')
isequal(f1,f2)
运行结果:
结果都是“真”
2.6、单元数组类型
单元数组是一种比较特殊的数据类型,每一个元素都是以单元形式存在。在MATLAB中 ,使用大括号来创建单元数组,也可以使用cell()函数来创建单元数组。在获取单元数组元素时,也是用大括号来表示下标。
我们使用例子来进行讲解:
clear all;
c={'中国','China';[1 2 3 4 5],100} //元素使用逗号分隔,换行使用分号
c{1,1}
c{2,1}
c{2,2}=[]
运行结果:
celldisp()用于显示单元数组的内容,例如
clear all;
c={eye(2),'China';[1:4],100}
celldisp(c)
celldisp(c,'mycell') //此外在运行结束时可以采用他的另外一个名字,例如mycell
cellplot()将单元数组以彩色图形进行显示
clear all;
c={'中国','China';[1:4],100}
figure;
out=cellplot(c,'legend')
这是他的运行结果:
我们还可以对单元数组的元素进行更改和添加和删除
clear all;
c={'中国','China';[1:4;2:5],10}
c{2,4}=100 //单元数组的扩充
c(1,:) //第一行元素
c(:,3)=[] //删除第三列
d={'北京','Beijing';[],3}
e=[c,d] //单元数组的合并
e(2,:)=[] //删除第二行
其显示结果为:
在对单元数组进行扩充时,没有赋值的元素默认为空
接下来来看,iscell()函数和num2cell()函数
clear all;
a=[2.3 4.5 9.2;3.5,3.2 8.5]
c=num2cell(a) //将矩阵转换为单元数组
iscell(a)
iscell(c)
num2cell()是将矩阵转换为单元数组 而 iscell()则是判断对象是否 为单元数组
我们再来看函数cell2struct()
这个函数是将单元数组转换为一个结构体变量
clear all;
c={'Dr. Zhang',1.80,20110001,[89 90 96]}
fields={'name','height','num','score'} //结构体成员变量
s=cell2struct(c,fields,2)
他的运行结果也是非常公整的:
2.7、结构体数据类型
MATLAB中的结构体数据类型类似于C语言中的结构体数据。
每个成员变量用指针操作符“.”来表示
他的常用函数如下所示
我们也可以在命令行窗口直接创造一个结构体变量
第二个结构体变量的gender没有设置,所以为空
我们也可以使用函数来创造结构体变量
clear all;
s1=struct('type',{'big','little'},'color',{'red'},'data',{[1 2 3;2 3 4] [1:4]})
s1(1)
s1(2)
他的运行结果是:
还有更多的函数,我就不一一介绍了 仅仅给出部分经典的例子
大家平时需要的话,随时查随时用即可
下面这是rmfield()的例子
clear all;
s1=struct('type',{'big','little'},'color',{'red'},'data',{[1 2 3;2 3 4] [1:4]})
s2=rmfield(s1,'color')
s3=rmfield(s1,{'type','color'}) //要删除两个成员变量时,需要用大括号给括起来
以下是isstruct()函数的例子
clear all;
s=struct('one',1,'two',2)
f1=isstruct(s)
f2=isfield(s,'one')
f3=isfield(s,'three')
f4=isfield(s,{'one','pi','Two','three'})
与上面相同的,要判断多个成员变量时,需要用大括号括起来,返回的结果也将是一个数组
3、总结
不知不觉之间,Nathan本专栏的第二篇博文也已经写完了!
本文主要讲了MATLAB的数据类型,内容应该来说还是比较简单的哦!
本专栏将于近期不断更新,欢迎大家交流指正吐槽!!
还是那句话
让我看看是哪个憨憨没有关注