MATLAB基础笔记——数据类型(3)

函数句柄

对函数的调用方法

直接调用函数
被调用的函数被称为子函数
但子函数只能被与其M文件同名的主函数或在M文件中的其他函数所调用,一个文件中只能有一个主函数

间接调用函数
使用函数句柄


调用格式

F_Handle=@cos

即后续运算可以通过F_Handle(x)来实现cos(x)的功能


简单操作函数

MATLAB基础笔记——数据类型(3)_第1张图片
MATLAB基础笔记——数据类型(3)_第2张图片

判断是否为句柄函数
MATLAB基础笔记——数据类型(3)_第3张图片
判断函数句柄是否对应同一函数
MATLAB基础笔记——数据类型(3)_第4张图片


结构体类型

通过字段赋值创建

格式:结构体.字段名称

Student.Name='Sam';
Student.Grade='6';
Student.Subject={'Chinese','Math','English'};
Student.Result={99,99,99};
Student

Student = 

得到结果

Student = 

  包含以下字段的 struct:

       Name: 'Sam'
      Grade: '6'
    Subject: {'Chinese'  'Math'  'English'}
     Result: {[99]  [99]  [99]}

利用struct函数创建结构体

常用句法形式

StrArray=struct(‘field1’,var1,‘field2’,var2,…‘fieldn’,varn)

 newArray=struct('Day',{'Thursday','Friday'},'Time',{'15:00','9:00'},'Number',{18,6})
 newArray(1)

ans = 

  包含以下字段的 struct:

       Day: 'Thursday'
      Time: '15:00'
    Number: 18

数组类型

1.冒号可代表一系列数组

Array =   i   :   k

默认步长为1

Array =   i : j : k

j 为步长

Array=linspace(a,b,n)

linspace均分函数

2.创建空数组(元素个数为0)

Array_Empty=[]

元胞数组

一种无所不包的广义矩阵

(1)使用赋值语句创建

使用{}
,或空格来分隔单元
;来换行

C={'x',[1;3;6];10,pi}

(2) 利用cell函数创建

cellName=cell(m,n)

元胞数组的寻访

在命令行窗口输入

c={3,[4 5;6 7;8 9],'string';sin(pi/8),3>10,'code'}
u_1=c(2,2)
class(u_1)
u_2=c{2,2}
class(u_2)

得到结果

c =

  2×3 cell 数组

    {[     3]}    {3×2 double}    {'string'}
    {[0.3827]}    {[       0]}    {'code'  }


u_1 =

  1×1 cell 数组

    {[0]}


ans =

    'cell'


u_2 =

  logical

   0


ans =

    'logical'

注意,c(m,n)指单元,而从c{m,n}指内容

元胞数组的操作

(1)合并

c={a b}

(2)删除
将空矩阵赋值给需删除的单元

c{1,4}=[]

(3)改变形状
使用reshape函数

newC=reshape(C,M,N)

map容器类型

map名=containers.Map({key1,key2,...},{val1,val2,...})

keys()查看所有键
value()查看所有值


读取map对象

valueName=mapName(keyName)

编辑map对象

remove('mapname','keyName')
%同时删除键名和对应的值

你可能感兴趣的:(matlab基础,matlab,开发语言)