matlab系列文章目录

第一章 matlab 学习入门之matlab基础

在这一章会学习到:
数据类型(数值,字符串,结构,单元数组,函数句柄,映射容器)
运算符与运算(算术运算符,关系运算符,逻辑运算符)
字符串处理(构造,比较,查找,替换,类型转换)
矩阵基础(构造矩阵,改变矩阵维度与大小,矩阵索引,获取矩阵属性信息)


文章目录

  • matlab系列文章目录
    • 第一章 matlab 学习入门之matlab基础
  • 前言
  • 一、数据类型
    • 1.1数值
      • 1.1.1整数
      • 1.1.2浮点数
      • 1.1.3复数
      • 1.1.4无穷数(Inf)和非数值量(NaN)
    • 1.2字符串
    • 1.3结构
      • 1.3.1构造结构对象
      • 1.3.2访问结构对象
      • 1.3.3连接结构对象
    • 1.4单元数组(cell array)
      • 1.4.1构造单元数组
      • 1.4.2访问单元数组
      • 1.4.3单元数组的操作
        • 1.合并
        • 2.删除指定单元
        • 3.改变单元数组形状
    • 1.5函数句柄
    • 1.6映射容器
      • 构造map类对象
      • 查看和读取map类对象
      • 编辑map类对象
        • 1.删除key/value对
        • 2.添加key/value对
        • 3.修改key和value
    • 1.7数据类型识别与转换
  • 二、运算符与运算
    • 2.1算术运算符
    • 2.2关系运算符
    • 2.3逻辑运算符
    • 2.4运算优先级
  • 三、字符串处理
    • 3.1字符串构造
    • 3.2字符串比较
    • 3.3查找与替换
    • 3.4字符串类型转换
  • 四、矩阵基础
    • 4.1矩阵构造
    • 4.2改变矩阵维度和矩阵大小
    • 4.3矩阵索引
    • 4.4获取矩阵属性
      • 4.4.1矩阵结构
      • 4.4.2矩阵大小
      • 4.4.3矩阵维度
      • 4.4.4矩阵数据类型
  • 总结

前言

随着人工智能的不断发展,matlab这门技术也越来越重要,很多人都开启了学习matlab,本章就介绍了入门matlab的基础内容,通过对基础部分的学习,可以将其他语言的基础编程知识与matlab融汇起来。


一、数据类型

1.1数值

和c++类似,数值类型有三种,整数,单精度浮点数和双精度浮点数,但在matlab中,默认数值双精度浮点数。

1.1.1整数

整数有8,16,32,64位,还有无符号的对应整数,分别为:int8,int16,int32,int64,uint8,uint16.uint32,uint64,无符号就是正整数,
这些也是转换函数,将其他类型转换成对应整数,

>> int16(2^15)ans =32767>>

还有其他转换函数,
如:floor()向下取整,floor(3.5)=3;
ceil()向上取整,ceil(3.5)=4;
round()取最接近的整数,round(1.4)=1,round(3.5)=4
fix()向0取整,取的值更接近0,fix(1.4)=1,fix(-3.5)=-3

1.1.2浮点数

单精度浮点数,32位,
双精度浮点数,64位,
默认双精度,与整数运算,得到整数;与单精度得到单精度‘与其他得到双精度;运算得到的结果如下:

>> a=int32(2);b=single(3.1);c=4.2;
>> i=a*c;j=b*c;k=c*c;
>> whosName      Size            Bytes  Class     Attributesa         1x1                 4  int32               ans       1x1                 8  double              b         1x1                 4  single              c         1x1                 8  double              i         1x1                 4  int32               j         1x1                 4  single              k         1x1                 8  double              s1        1x10               20  char                >>

注意:整数不能与单精度数直接相乘,如下:


>> a=int32(2);b=single(3.14);b*a
错误使用  *
整数只能与相同类的整数或标量双精度值组合使用。>>

注意,在matlab中,使用eps当作0,避免0为分母,

>> a=eps(5);b=eps(single(5));
>>
>> bb =4.7684e-07>> aa =8.8818e-16>>

pi是matlba中的圆周率,即3.14

>> pians =3.1416>> double(pi)ans =3.1416>> sin(pi/2)ans =1>> cos(pi/2)ans =6.1232e-17>> tan(pi/2)ans =1.6331e+16>>

sqrt()是开平方根,如

>> sqrt(9)ans =3>>

1.1.3复数

在matlab中。字符i或j默认为虚部,构造复数可以按复数形式构造,或使用complex函数
complex(a,b),构造a实部,b虚部;
real(z)返回复数z的实部;
imag(z)返回复数的虚部;
abs(z)返回复数的模;
angle(z)返回复数的辐角;
conj(z)返回复数的共轭复数;
操作如下:

>>  a=complex(6,8);b=3+4i;c=a-bc =3.0000 + 4.0000i>> real(c)ans =3>> imag(c)ans =4>> abs(c)ans =5>> angle(c)ans =0.9273>> conj(c)ans =3.0000 - 4.0000i>>

1.1.4无穷数(Inf)和非数值量(NaN)

matlab中正无穷Inf,负无穷-Inf,NaN表示非数值量,非数值量由0/0或Inf/Inf产生,

>> 0/0ans =NaN>> 1/0ans =Inf>> log(0)ans =-Inf>> exp(-inf)ans =0>> NaN-NaNans =NaN>> exp(1000)ans =Inf>>

1.2字符串

在文本框里显示的是字符,但在存放是存储的是ASC2码,

>> s='abc's =abc>> ab=abs(s)ab =97    98    99>>

字符串可以通过下标索引访问,如下:


>> s(1)ans =a>>

若用矩阵下标索引访问,则矩阵每行字符数需要相同。

1.3结构

与其他编程语言类似,一个结构对象相当于数据容器,可以存放多种类型的数据,接下来介绍如何构造一个结构对象,

1.3.1构造结构对象

这里为标准,选择struct函数构造结构对象
一个变量名,后跟一个赋值,如下:

>> patient=struct('name','zoe','billing','168912.23','test',[95,99,96;192,185.5,197;280,295,278])patient = name: 'zoe'billing: '168912.23'test: [3x3 double]>>
>> whos patientName         Size            Bytes  Class     Attributespatient      1x1               624  struct              >>

1.3.2访问结构对象

构造好一个结构对象后,如何访问呢?
使用对象名和对象中的变量名来访问,如下:

>> patient(2).name='zuck'patient = 1x2 struct array with fields:namebillingtest>> patient(2)ans = name: 'zuck'billing: []test: []>> patient.nameans =zoeans =zuck>> patient(1).nameans =zoe>> patient(2).nameans =zuck>> patient(1).testans =95.0000   99.0000   96.0000192.0000  185.5000  197.0000280.0000  295.0000  278.0000>>

1.3.3连接结构对象

直接连接即可,放入一个[]中,如下:
一个[]中装下两个结构对象,

>> patient1=struct('name','ryze','billing','277.12','test',[1,2,3;4,5,6;,7,8,9]);
>> patient2=struct('name','zed','billing','877.86','test',[45,27,83;64,55,26;17,8,9]);
>>
>> patient1patient1 = name: 'ryze'billing: '277.12'test: [3x3 double]>> patient1.test=[1,2,3;4,5,6;7,8,9]patient1 = name: 'ryze'billing: '277.12'test: [3x3 double]>> patient2patient2 = name: 'zed'billing: '877.86'test: [3x3 double]>> patient=[patient1,patient2];>> whos patient patient1 patient2Name          Size            Bytes  Class     Attributespatient       1x2              1046  struct              patient1      1x1               620  struct              patient2      1x1               618  struct              >>

1.4单元数组(cell array)

1.4.1构造单元数组

这里选择使用赋值语句构造,用花括号来构造。用逗号,分割单元,用分号;来分行,如下:

>> a={1,2,3;'a',[2;5;7],'0'}a = [1]    [         2]    [3]'a'    [3x1 double]    '0'>>

得到一个两行三列的矩阵
可以使用cell函数构造空单元数组,如下:

>> b=cell(2,3)b = []    []    [][]    []    []>>

1.4.2访问单元数组

单元外标识,使用C(x,y)形式来访问特定元素,表示单元数组C中的第x行第y列的单元。使用C{x,y}访问单元数组C中的第x行第y列的单元中的内容,如下:

>> a(2,3)ans = '0'>> a(2,2)ans = [3x1 double]>> a{2,2}ans =257>>

1.4.3单元数组的操作

操作包括:合并,删除单元数组中指定单元,改变单元数组形状

1.合并

使用花括号{}将两个单元数组放一起,如下:

>> a={1,2;3,4};>> aa = [1]    [2][3]    [4]>> b={5}b = [5]>> c={a b}c = {2x2 cell}    {1x1 cell}      >> whosName      Size            Bytes  Class    Attributesa         2x2               480  cell               b         1x1               120  cell               c         1x2               824  cell               >> c{1,1}ans = [1]    [2][3]    [4]>> c{1,2}ans = [5]>>

2.删除指定单元

将空[]赋值给指定单元,如下:

>> aa = [1]    [2][3]    [4]>> a{2,2}=[]a = [1]    [2][3]     []>>

3.改变单元数组形状

使用reshape函数即可,如下:

a = [1]    [2][3]     []>> reshape(a,1,4)ans = [1]    [3]    [2]    []>>

1.5函数句柄

用操作符@,对matlab库函数,通过函数句柄来对函数间接调用,构造函数句柄语法为:

>> f_handle=@Function_Filenamef_handle = @Function_Filename>>

其中,Function_Filename是函数对应的M文件名称,或matlab内部函数的名称;
@是函数句柄构造操作符;
f_handle变量保存了该函数句柄;

函数句柄的创建与调用,如下:

>> F_Handle=@sinF_Handle = @sin>> x=0:0.25*pi:pi;
>> F_Handle(x)ans =0    0.7071    1.0000    0.7071    0.0000>>

matlab库函数对函数句柄的操作函数,因此各种数据类型和句柄形成功能交互,一些简单操作函数,如下:
@,间接调用函数;
func2str,将函数句柄转换为函数名的字符串,
str2func,将字符串转换成函数句柄;
functions(),返回函数名,类型,及文件位置的结构体;

>> F_Handle=@sinF_Handle = @sin>>
>> aa=func2str(F_Handle)aa =sin>> str2func(aa)ans = @sin>> functions(F_Handle)ans = function: 'sin'type: 'simple'file: ''>>

1.6映射容器

映射容器(map containers),和其他编程语言中的map对象一样,由对应的key和value组成键值对,如同python中的字典dict,也和生活中的字典很像,
key可以是字符串,单精度或双精度数,整数,
value中可以是任何数据类型,数值,字符串,结构体,单元结构,其他映射容器;
和python中的dict非常相似。

map类对象,有三种属性,使用map.属性查看,如下:
count,map对象中键值对总数,
keytype,map对象中key的数据类型,
valuetype,map对象中value的数据类型

接下来介绍如何构造map类对象,并查看和读取map类对象以及编辑。

构造map类对象

构造格式,如下:
mapObj=containers.Map({key1,key2,…},{val1,val2,…})
可以先将key和value独自构造好,再在Map()中构造,

>> key={'jan','feb','mar','apr','may','jun','jul','aug','sep','oct','Nov','Dec','Annual'};
>> value={1,2,3,4,5,6,7,8,9,10,11,12,24};
>> containers.Map(key,value)ans = Map (具有属性):Count: 13KeyType: charValueType: double>> whosName        Size            Bytes  Class             Attributesans        13x1               112  containers.Map              key         1x13             1540  cell                        value       1x13             1560  cell                        

查看和读取map类对象

可以使用.keys查看所有key,使用values查看所有value,如下:

>> key={'jan','feb','mar','apr','may','jun','jul','aug','sep','oct','Nov','Dec','Annual'};
>> value={1,2,3,4,5,6,7,8,9,10,11,12,24};
>> a_map=containers.Map(key,value)
>> a_map.keysans = 'Annual'    'Dec'    'Nov'    'apr'    'aug'    'feb'    'jan'    'jul'    'jun'    'mar'    'may'    'oct'    'sep'>> a_map.valuesans = [24]    [12]    [11]    [4]    [8]    [2]    [1]    [7]    [6]    [3]    [5]    [10]    [9]>>

也可以使用keys()和values()来查看

>> keys(a_map)ans = 'Annual'    'Dec'    'Nov'    'apr'    'aug'    'feb'    'jan'    'jul'    'jun'    'mar'    'may'    'oct'    'sep'>> values(a_map)ans = [24]    [12]    [11]    [4]    [8]    [2]    [1]    [7]    [6]    [3]    [5]    [10]    [9]>>

查找指定的一个值,使用指定key,如下:

>> a_map('sep')ans =9>>

查找指定的多个值,使用values()函数,如下:
注意:里面要使用花括号,

>> values(a_map,{'sep','Nov'})ans = [9]    [11]>>

编辑map类对象

1.删除key/value对

用remove()函数,如下:
用key指定要删除的key/value对

>> remove(a_map,'oct')ans = Map (具有属性):Count: 12KeyType: charValueType: double>>

批量删除,在删除指定key处换成花括号即可,

>> b={'apr' ,   'aug'  ,  'feb'  }b = 'apr'    'aug'    'feb'>> remove(a_map,b)ans = Map (具有属性):Count: 9KeyType: charValueType: double>>
2.添加key/value对

直接往Map对象中添加key/value对,如下:

>> a_map('apr')=4a_map = Map (具有属性):Count: 10KeyType: charValueType: double>> a_map('aug')=8a_map = Map (具有属性):Count: 11KeyType: charValueType: double>>
3.修改key和value

修改value直接重新赋值,如下:

>> a_map('aug')=88a_map = Map (具有属性):Count: 11KeyType: charValueType: double>> a_map('aug')ans =88>>

修改key需要先删除原key,再重新赋值,以完成覆盖,

1.7数据类型识别与转换

在matlab中提供了大量数据类型识别的函数,
和python类似,
基本是以is开头,如:
isinteger 整数
islogical 逻辑数组
isnumeric 数值数组
isobject matlab对象
isreal 实数
isscalar 标量
isstruct 结构数组
isstr 字符串
isvector 向量
whos 变量类型数据
类型转换
char 变换为字符
int2str 整数变为字符串
如下:


>> cc=num2str(32.22)cc =32.22>> whos ccName      Size            Bytes  Class    Attributescc        1x5                10  char               >>

二、运算符与运算

在matlab中,运算符有算术运算符,关系运算符,逻辑运算符。与其他编程语言类似。优先级为算术>>关系>>逻辑。

2.1算术运算符

matlab中有常规四则运算,和带点四则运算(为矩阵运算),
a+b a和b相加;
a-b a和b相减;
a*b a和b相乘;
a/b a和b相除;注意,a和b为数值或者矩阵,
a^b a的b次幂;注意,a和b为数值或者矩阵,
a.*b a和b对应元素相乘;a和b为相同维度矩阵,
a./b a和b对应元素相除;a和b为相同维度矩阵,
a.^b a的每个元素的b次幂;a为矩阵,b为数值。

matlab中构造矩阵方法,eye()构造指定维度的对角矩阵,ones()构造指定维度的全1矩阵,

实例如下:

>> a=eye(3)a =1     0     00     1     00     0     1>> b=ones(3)b =1     1     11     1     11     1     1>>
>> a*bans =1     1     11     1     11     1     1>>
>> a.*bans =1     0     00     1     00     0     1>>

2.2关系运算符

在matlab中有6个关系运算符,
小于<,大于>,等于==,小于等于<=,大于等于>=,不等于~=,
返回结果仅为1或0,
即真假,
获得一组数的方法,如1:5,

>> a=1:5a =1     2     3     4     5>>
>> whos aName      Size            Bytes  Class     Attributesa         1x5                40  double              >>

进行关系运算,如下:

>> c=8-ac =7     6     5     4     3>> torf1=(a>4)torf1 =0     0     0     0     1>> torf2=(a==c)torf2 =0     0     0     1     0>> >> torf3=(a>c)torf3 =0     0     0     0     1>>

2.3逻辑运算符

与其他编程语言类似,有三种,与&,或||,非~,
如下:

>> t1=~(a>4)t1 =1     1     1     1     0>> t2=(a>1)&(a<5)t2 =0     1     1     1     0>> t3=(a>3)|(b>3)t3 =0     0     0     1     1>>

逻辑运算符可以让矩阵和数值进行比较,方法为将矩阵的每一个数值与该数值比较,比较结果为相同维度的矩阵,

在matlab中,一些逻辑函数,
xor(x,y)异或运算。x和y不同返回1,相同返回0
any(x)向量x有任何元素非零,返回1,否则返回0,;矩阵中每一列有非零元素,返回1,否则返回0
all(x)向量x所有元素非零,返回1,否则返回0;矩阵x中每一列所有元素非零,返回1,否则返回0。

2.4运算优先级

如下所述,加括号改变运算优先级,

三、字符串处理

3.1字符串构造

直接变量赋值,
可通过strcat横向连接两个字符串

>> s1='what is up?'s1 =what is up?>> s2='fine,and you?'s2 =fine,and you?>> s=strcat(s1,s2)s =what is up?fine,and you?>>

也可以通过strvcat函数和char函数纵向连接两个字符串,

>> strvcat(s1,s2)ans =what is up?
fine,and you?>>

char纵向连接

>> char(s1,s2)ans =what is up?
fine,and you?>>

3.2字符串比较

可以通过关系运算符来比较,也可以通过strcmp函数比较两个字符串,
如下:
使用关系运算符比较时,返回一个长度和字符串大小相同的数组,而strcmp返回的是判断两个字符串是否相同,返回值0或1,

>> a1=('daisy'=='buton')a1 =0     0     0     0     0>> a1=('daisy'=='wassp')a1 =0     1     0     1     0>> c1=strcmp('daisy','wassp')c1 =0>> c1=strcmp('wassp','wassp')c1 =1>>

3.3查找与替换

通过findstr函数可以查找字符串,
可以直接对字符串中元素直接赋值以替换字符串,也可以使用strrep函数替换,
如下:

>> s='you smile like sunshine. ';>> spacePos=findstr(s,' ')  %搜索字符串中空格位置spacePos =4    10    15    25>> ePos=findstr(s,'e') %搜索字母e的位置ePos =9    14    23>> ouPos =findstr(s,'ou')ouPos =2>> repStr=strrep(s,'you','her')repStr =her smile like sunshine. >>

注意:findstr函数对字母大小写敏感,

3.4字符串类型转换

matlab有许多字符串与其他类型数据转换的函数
如abs,字符串转换为asc2码,

>> r=5;area=pi*r^2;
>> areaarea =78.5398>> whos areaName      Size            Bytes  Class     Attributesarea      1x1                 8  double
>> jj=num2str(area)jj =78.5398>> whos jjName      Size            Bytes  Class    Attributesjj        1x7                14  char               >>

四、矩阵基础

我想加入张量的概念,即标量,一维向量,二维矩阵,三维张量,四维张量。
矩阵的基础操作有,矩阵构造,

4.1矩阵构造

矩阵可以由变量直接赋值构造;另一种方法是使用特殊函数构造,
在上述知识中,已经介绍了两种构造矩阵的方法,分别是构造全1矩阵ones()函数和构造对角矩阵单位矩阵的eye()函数,实例如下:

>> ones(2,2)ans =1     11     1>> eye(3,3)ans =1     0     00     1     00     0     1>>

稍微引入了上文一下,具体由变量直接构造,方法为:用[]包住所有元素,对于每一列用分号;隔开,每个元素之间用逗号,隔开,实例如下:

>> [1,2,3;4,5,6;7,8,9] %使用逗号隔开元素,使用分号隔开每一行ans =1     2     34     5     67     8     9>>

另一种方法是使用特殊函数构造,使用matlab实现定义好的特殊函数去构造,如下:

>> ones(2)ans =1     11     1>> zeros(2)ans =0     00     0>>
>> eye(2)ans =1     00     1>> eye(2,3)ans =1     0     00     1     0>> eye(3,2)ans =1     00     10     0>>

注意:也可以直接创建一个空矩阵[],如下:

>> a=[] %a是一个空矩阵a =[]>>

4.2改变矩阵维度和矩阵大小

在编程世界里或者数学世界里,矩阵的形状是可以改变的,简单的如行矩阵变列矩阵,矩阵形状的改变,不改变矩阵内元素,在进行一些特定需求是很有必要,如在人工智能LSTM神经网络中,就需要对输入神经网络模型的“矩阵”进行形状的改变,对它加上一个维度,使其变成2一个三维张量,这需要将pandas这dataframe格式数据先变为numpy的ndarray格式,然后对ndarray类型矩阵进行增加一个维度,这就变成了一个三维张量,然后输入LSTM神经网络,话扯得有点远了,言归正传,在matlab里也是有需要对矩阵的维度进行改变的,那么怎么对矩阵的维度进行改变呢?这就是接下来要讲的知识。

在matlab里,提供了一些事先定义好的函数,举例如下:

>> a=[1,5,9;3,5,7;2,4,8]a =1     5     93     5     72     4     8>> reshape(a,1,9)  %改变矩阵为1行9列ans =1     3     2     5     5     4     9     7     8>> fliplr(a)  %每一行元素逆序排列ans =9     5     17     5     38     4     2>> rot90(a)  % 生成一个由a逆时针旋转90度的矩阵ans =9     7     85     5     41     3     2>> repmat(a,[2,2]) %创建和a有相同元素的一个2*2块的矩阵,由4块和a同样大小的矩阵组成ans =1     5     9     1     5     93     5     7     3     5     72     4     8     2     4     81     5     9     1     5     93     5     7     3     5     72     4     8     2     4     8>>

4.3矩阵索引

矩阵索引有单下标索引和双下标索引,推荐使用双下标索引,避免歧义,
单下标索引就是按列开始从前往后,一直排序,

a =1     5     93     5     72     4     8>> a(:,2)  %返回第2列的所有元素ans =554>> a(1,:)  %返回第一行的所有元素ans =1     5     9>> a(:,1:2)  %返回第1到2列的所有元素ans =1     53     52     4>> a(1:2,:)  %返回第1到2行的所有元素ans =1     5     93     5     7>> a(1:2,2:3)  %返回第1到2行,第2到3列的所有元素ans =5     95     7>>

使用下标索引,如下:


>> a=magic(5)  %构建一个5*5的矩阵,每一行元素之和相等,每一列元素之和相等a =17    24     1     8    1523     5     7    14    164     6    13    20    2210    12    19    21     311    18    25     2     9>>>> a(2:3,4:5)  %构建一个2到3行,4到5列的矩阵ans =14    1620    22>> a([2:3 4:5])  %构建一个第2,3个元素和第4,5个元素组成的矩阵ans =23     4    10    11>>

在matlab中单下标索引和双下标索引可以转换,使用sub2ind()函数,
在matlab中,提供了在一个已知size矩阵中,相互转换的函数

>> sub2ind([3,3],1,3)  %给定一个矩阵的size,然后输入要提取的双下标索引,返回一个按列排序的单下标索引ans =7
>> [a b]=ind2sub([3,3],7)  %给定一个矩阵的size,然后输入要提取的按列排序的单下标索引,返回对应双下标索引,需要给两个变量在矩阵中[]去接受这两个索引值a =1b =3>>

4.4获取矩阵属性

矩阵属性包括:矩阵结构,矩阵大小,矩阵维度,矩阵数据类型,

4.4.1矩阵结构

举例如下:

>> a=magic(3)   %构造一个3*3矩阵a =8     1     63     5     74     9     2>> isempty(a)  %判断矩阵是否为空矩阵ans =0>> isscalar(a)  %判断矩阵是否是单元素的标量矩阵ans =0>> isvector(a)   %判断矩阵是否是一维向量ans =0>> issparse(a)   %判断矩阵是否是稀疏矩阵ans =0>>

4.4.2矩阵大小

矩阵的大小信息包括个信息,矩阵维度ndims,矩阵行数列数size,矩阵元素个数numel
实例如下:

>> a=[magic(3) [1,2,3]']  %生成一个3行4列矩阵,在第4列加上1列[1,2,3]'a =8     1     6     13     5     7     24     9     2     3>> ndims(a)  %矩阵维度ans =2>> [row,column]=size(a)  %矩阵的行数和列数row =3column =4>> l=length(a)  %矩阵的最长维度长度l =4>> n=numel(a)  %矩阵元素个数n =12>>

4.4.3矩阵维度

在matlab中,空矩阵[],标量矩阵[1],一维矩阵[1,2,3],二维矩阵[1,2;3,4]都作为普通二维矩阵,并由ndims()函数计算维度信息。
实例如下:

>> a=[];b=5;c=1:3;d=ones(2);e(:,:,2)=[1 2;3 4];  %a是空矩阵,b是标量矩阵,c是一维矩阵,d是二维矩阵
>> nds=[ndims(a),ndims(b),ndims(c),ndims(d),ndims(e)]  %查看每个矩阵的维度信息nds =2     2     2     2     3>> whosName      Size             Bytes  Class     Attributesa         0x0                  0  double              b         1x1                  8  double              c         1x3                 24  double              d         2x2                 32  double              e         2x2x2               64  double              nds       1x5                 40  double              >>

4.4.4矩阵数据类型

matlab中可以由特定函数判断矩阵数据类型,
如下:

d =1     11     1>> isnumeric(d)  %是否是数值型ans =1>> isreal(d)   %是否是实数ans =1>> isfloat(d)  %是否是浮点型ans =1>> isinteger(d)   %是否是整数ans =0>> islogical(d)   %是否是逻辑型ans =0>> ischar(d)  %是否是字符ans =0>> isstruct(d)   %是否是结构体ans =0>> iscell(d)   %是否是单元数组ans =0>> iscellstr(d)    %是否是结构体单元数组ans =0>>

总结

本章是matlab的基础知识章,讲解了matlab章的基础知识,有数据类型,运算符,字符串处理,矩阵基础等知识。通过这些知识的讲解建立起对matlab的基础认识,希望以上代码全部在matlab上敲一遍,在后续章节里,将通过这些基础知识深入讲解matlab。

第一章 matlab 学习入门之matlab基础相关推荐

  1. 第三章 matlab学习入门之编程基础

    系列文章目录 第三章 matlab学习入门之编程基础 在这一章,你会学到的知识: 变量与语句: 程序控制: M文件: 脚本: 函数: 变量检测: 程序调试: 文章目录 系列文章目录 前言 一.变量与语 ...

  2. 第四章 Cesium学习入门之加载离线影像图(tif)

    从0开始的Cesium 第一章 Cesium学习入门之搭建Vite+Vue3+Cesium开发环境 第二章 Cesium学习入门之搭建Cesium界面预览和小控件隐藏 第三章 Cesium学习入门之地 ...

  3. 第六章 Cesium学习入门之添加Geojson数据(dataSource)

    从0开始的Cesium 第一章 Cesium学习入门之搭建Vite+Vue3+Cesium开发环境 第二章 Cesium学习入门之搭建Cesium界面预览和小控件隐藏 第三章 Cesium学习入门之地 ...

  4. Matlab学习一本通,matlab基础教程

    链接:https://pan.baidu.com/s/1uTCbiRfIxcrt6lmiy6_QlQ  提取码:f2dn  Matlab学习一本通,matlab基础教程 <MATLAB R201 ...

  5. 《Go语言圣经》学习笔记 第一章 Go语言入门

    Go语言圣经学习笔记 第一章 Go语言入门 目录 Hello, World 命令行参数 查找重复的行 GIF动画 获取URL 并发获取多个URL Web服务 本章要点 注:学习<Go语言圣经&g ...

  6. Android 渗透测试学习手册 第一章 Android 安全入门

    第一章 Android 安全入门 作者:Aditya Gupta 译者:飞龙 协议:CC BY-NC-SA 4.0 Android 是当今最流行的智能手机操作系统之一. 随着人气的增加,它存在很多安全 ...

  7. Deep learning with python notebooks 笔记 第一章 深度学习基础

    第一章 深度学习基础 好的图表比文字传达的信息量多 图1-1帮助理清了人工智能.机器学习和深度学习之间的关系. 图1-2 清晰的阐述了经典程序设计范式和机器学习一种新的编程范式的不同.两种范式引出了两 ...

  8. 第一章:OpenCV入门

    第一章:OpenCV入门 OpenCV是一个开源的计算机视觉库,1999年有英特尔的Gary Bradski启动.OpenCV库由C和C++语言编写,涵盖计算机视觉各个领域内的500多个函数,可以在多 ...

  9. 第一章 软件开发入门引导及概述

    第一章 软件开发入门引导及概述 前言 计算机系统是由硬件和软件组成,所谓硬件是指组成计算机系统的物理设备,包括电子的.机械的.磁的.光的设备的总和. 我们的电脑.手机.电子设备都算一个小的计算机. 而 ...

最新文章

  1. javascript漏洞-检测到目标站点存在javascript框架库漏洞
  2. java 常见中文乱码问题解决
  3. SQL学习(三)之子句和函数
  4. 【Python】Pandas数据挖掘与分析时的常用方法
  5. 网络流题目详讲+题单(提高版)(持续更新中......)
  6. Java黑皮书课后题第5章:*5.39(金融应用:求销售总额)假设你正在某百货商店开始销售工作。你的工资包括基本工资和提成。基本工资是5000美元。你的目标是一年挣30000美元,编写程序找最小销售额
  7. 【168天】黑马程序员27天视频学习笔记【Day07】
  8. 小伙工资单被同事看到后遭开除!网友炸锅了 最新后续来了...
  9. 如何用深度学习 AI 美颜实现天天 P 图疯狂变脸算法? | 技术头条
  10. java 接口入门,Java接口入门教程解读
  11. Android签名证书生成
  12. 解决联想电脑“未安装音频设备”问题
  13. 9.2 5道半leetcode+2verilog+ques lists
  14. 20200229小白自学Python之路00
  15. mySQL基础之常见函数
  16. VUE PC端和移动端适配
  17. 二维码QR 码纠错级别
  18. html中加粗文字,span文字加粗_span盒子对象内字体加粗
  19. cannot enlist more than one non-XA resource
  20. 关于怎么把Excel表格导入MySQL数据库中

热门文章

  1. 侍魂胧月传说服务器维护,侍魂胧月传说手游7月15日停机维护更新预告
  2. LARS算法的几何意义
  3. oracle快速生成序列号,Oracle实现自定义序列号生成
  4. 十九 Redis AOF持久化
  5. 软件工程中众包应用的综述
  6. Meltdown: Reading Kernel Memory from User Space论文翻译
  7. Kaggle比赛心得
  8. 《漫步华尔街》 读书笔记 part1 历史
  9. ps更换证件照的背景色
  10. 计算机在运行表格的时候很慢,打开excel很慢_EXCEL表格打开反应太慢时什么原因...