MATLAB中的数据类型 字符串型数据 ·MATLAB作为一种高级语言,字符串运算功能也是很丰富的,字符串(String of character)就是字符数组(Character array),一个字符串是存储在一个行向 量中的文本,由单引号括起来(yesinput除外)。在字符串里的每个字符是数 组里的一个元素,字符串中空格也是字符,由于字符串是以向量的形式来存储 的,因而可以通过它的下标对字符串中的任何一个元素进行访问,例如: >s1='MATLAB STRING'; 生成字符串s1 >dim=size(s1) 号显示s1的维数,为1×13阶矩阵 dim 13 >s2=['MATLAB STRING']; 号生成字符数组s2,与s1等价 >>s1(2): 号通过下标访问字符串,ans=A
MATLAB中的数据类型 字符串型数据 MATLAB作为一种高级语言,字符串运算功能也是很丰富的,字符串(String of character)就是字符数组(Character array),一个字符串是存储在一个行向 量中的文本,由单引号括起来(yesinput除外)。在字符串里的每个字符是数 组里的一个元素,字符串中空格也是字符,由于字符串是以向量的形式来存储 的,因而可以通过它的下标对字符串中的任何一个元素进行访问,例如: >> s1='MATLAB STRING'; %生成字符串s1 >> dim=size(s1) %显示s1的维数,为1×13阶矩阵 dim = 13 >> s2=['MATLAB STRING']; %生成字符数组s2,与s1等价 >> s1(2); %通过下标访问字符串,ans=A
MATLAB中的数据类型 冬多维数组 ·数组也可以嵌套,一个数组的元素可以是另外一个数组,这样就构成了多维数 组,图示即为一个三维数组,数组的第一维称为“行”,第二维称为“列”, 第三维称为“页”,我们可以通过按页输入的方法构造一个三维数组并进行运 算 >>A=[12;13]: >B(:,1)=A; 号输入矩阵B的第一页 >>B(:,:,2)=A^2: 输入矩阵B的第二页 >B(:,:,3)=A^2; 号输入矩阵B的第三页 >>C=ones(2,2,3): 号矩阵C为为2×2X3维全1矩阵 >D=C./B 号三维矩阵间的./运算 2. 08.4 D(:,:,1)= 1.0000 0.5000 , 434 1.0000 0.3333 34 D(:,:,2)= ,381 3, 0.3333 0.1250 0.2500 0.0909 D(:,:,3)= 0.3333 0.1250 0.2500 0.0909
MATLAB中的数据类型 多维数组 数组也可以嵌套,一个数组的元素可以是另外一个数组,这样就构成了多维数 组,图示即为一个三维数组,数组的第一维称为“行”,第二维称为“列”, 第三维称为“页”,我们可以通过按页输入的方法构造一个三维数组并进行运 算 >> A=[1 2; 1 3]; >> B(:,:,1)=A; %输入矩阵B的第一页 >> B(:,:,2)=A^2; %输入矩阵B的第二页 >> B(:,:,3)=A^2; %输入矩阵B的第三页 >> C=ones(2,2,3); %矩阵C为为2×2×3维全1矩阵 >> D=C./B %三维矩阵间的./运算 D(:,:,1) = 1.0000 0.5000 1.0000 0.3333 D(:,:,2) = 0.3333 0.1250 0.2500 0.0909 D(:,:,3) = 0.3333 0.1250 0.2500 0.0909
MATLAB中的数据类型 元胞数组 ·元胞数组可以看做是多维数组的直接扩展,其存储形式类似于矩阵,但元胞数组的元素 不一定是数值,可以是MATLAB支持的任意存储类型,并且各元素的类型也可以不尽相 同。其元素就被称为“元胞”(cl)。元胞数组也用下标标识,但元胞数组中有元胞元 素和元胞元素的内容两个概念,用圆括号表示元胞元素,用大括号来包含元胞元素的内 容,cel{i,}即表示元胞数组ce的第行,第j列的存储内容,亦即元胞元素cell(i)的内容。 一个直接的例子就是在直接赋值的过程中,与在矩阵的定义中使用的中括号不同,元胞 数组元素的内容要用大括号来包含,元素之间由逗号隔开 >>A=[25:42]: %矩阵的定义使用的是中括号 >>B=(A,【69]:'test',[16;74]) 号元胞数组的定义使用的是大括号 B= 号仅显示元胞数组中的存储量类型 【2x2 double】 [1x2 double] 'test' [2x2 double] >c(1,1)=([13;57]1 C(1,1)代表元胞元素,其内容是一矩阵 >>C(1,2}=[24:68]; 号C(1,21代表c(1,2)的内容,为一矩阵 >>celldisp(C) 号显示元胞数组c的具体内容 c(1)= 1 3 5 C(2}=
MATLAB中的数据类型 元胞数组 元胞数组可以看做是多维数组的直接扩展,其存储形式类似于矩阵,但元胞数组的元素 不一定是数值,可以是MATLAB支持的任意存储类型,并且各元素的类型也可以不尽相 同。其元素就被称为“元胞”(cell)。元胞数组也用下标标识,但元胞数组中有元胞元 素和元胞元素的内容两个概念,用圆括号表示元胞元素,用大括号来包含元胞元素的内 容,cell {i,j}即表示元胞数组cell的第i行,第j列的存储内容,亦即元胞元素cell (i,j)的内容。 一个直接的例子就是在直接赋值的过程中,与在矩阵的定义中使用的中括号不同,元胞 数组元素的内容要用大括号来包含,元素之间由逗号隔开 >> A=[2 5;4 2]; %矩阵的定义使用的是中括号 >> B={A, [6 9];'test',[1 6;7 4]} %元胞数组的定义使用的是大括号 B = %仅显示元胞数组中的存储量类型 [2x2 double] [1x2 double] 'test' [2x2 double] >> C(1,1)={[1 3;5 7]}; %C(1,1)代表元胞元素,其内容是一矩阵 >> C{1,2}=[2 4;6 8]; %C{1,2}代表C(1,2)的内容,为一矩阵 >>celldisp(C) %显示元胞数组C的具体内容 C{1} = 1 3 5 7 C{2} = 2 4 6 8
MATLAB中的数据类型 结构型数组 结构型数组与元胞数组类似,不同之处在于结构型数组利用指针方式传递数据: 在结构数组的直接赋值定义过程中,需要指出结构中的属性名,并且以指针操 作符“”来连接结构型数组与属性名,在命令行提示符后输入结构型数组的名 称,则可显示其属性以及属性值。例如: >student 1.name='lin hong'; >student 1.stature=182; >student 1.weight=79; >student 1 student 1= name: 'lin hong stature: 182 weight: 79
MATLAB中的数据类型 结构型数组 结构型数组与元胞数组类似,不同之处在于结构型数组利用指针方式传递数据。 在结构数组的直接赋值定义过程中,需要指出结构中的属性名,并且以指针操 作符“.”来连接结构型数组与属性名,在命令行提示符后输入结构型数组的名 称,则可显示其属性以及属性值。例如: >> student_1.name='lin hong'; >> student_1.stature=182; >> student_1.weight=79; >> student_1 student_1 = name: 'lin hong' stature: 182 weight: 79
MATLAB语言中的变量 MATLAB中变量区别于其他编程语言的特点 ·MATLAB:表达式中可以使用矩阵形式: ·MATLAB中不需要预先声明变量的类型和维数,MATLAB会根据对新变量的 操作创建该变量,确定其类型并为其分配存储空间: ·对己经存在的变量的赋值操作,MATLAB会以新值代替旧值。如果需要的话, MATLAB可以改变该变量的类型或者为其分配新的存储空间 MATLAB变量的命名规则 ·MATLAB中的变量名由一个字母导引,后面可以跟字母、数字、下划线等, 但不能用空格或者标点符号。例如var temp、control inputl、state21均是合法 变量名,而_output、45time、@position等均是非法变量名; 变量名不能是MATLAB的保留字,例如for、end、while、if等命令名; MATLAB中的变量名是大小写敏感的,即A和a代表不同的变量: 。 变量名长度不能超过63位(在MATLAB7.8中预先定义了变量名长度最大值 namelengthmax?为63),超过的部分将被忽略,即如果两个变量名的前63个字符 相同,则MATLAB认为其为相同的变量: 一些常量也可以作为变量来使用,例如i和j在MATLAB中表示虚数单位,但是 也可以作为变量,例如和还经常作为循环语句中的循环变量
MATLAB语言中的变量 MATLAB中变量区别于其他编程语言的特点 MATLAB表达式中可以使用矩阵形式; MATLAB中不需要预先声明变量的类型和维数,MATLAB会根据对新变量的 操作创建该变量,确定其类型并为其分配存储空间; 对已经存在的变量的赋值操作,MATLAB会以新值代替旧值。如果需要的话, MATLAB可以改变该变量的类型或者为其分配新的存储空间 MATLAB变量的命名规则 MATLAB中的变量名由一个字母导引,后面可以跟字母、数字、下划线等, 但不能用空格或者标点符号。例如var_temp、control_input1、state21均是合法 变量名,而 _output、45time、@position等均是非法变量名; 变量名不能是MATLAB的保留字,例如for、end、while、if等命令名; MATLAB中的变量名是大小写敏感的,即A和a代表不同的变量; 变量名长度不能超过63位(在MATLAB7.8中预先定义了变量名长度最大值 namelengthmax为63),超过的部分将被忽略,即如果两个变量名的前63个字符 相同,则MATLAB认为其为相同的变量; 一些常量也可以作为变量来使用,例如i和j在MATLAB中表示虚数单位,但是 也可以作为变量,例如i和j还经常作为循环语句中的循环变量