Matlab的数据及其运算2012
第2章 MATLAB数据及其运算

③也可以采用矩阵元素的序号来引用矩阵元素。矩 阵元素按列编号,先第一列,再第二列,依次类 推。 显然,下标(subscrip)与序号(index)是一一对 应的。以m×n矩阵A为例,矩阵元素A(i,j)的序 号为 (j-1)*m+i。其相互转换关系也可利用 sub2ind和ind2sub函数求得 sub2ind(size(A),2,3) %已知行列,求序号 [c,d]=ind2sub(size(A),6) %已知序号,求行 列 还可利用reshape(A,m,n)在矩阵总元素不变的前 提下,将矩阵重排
2、赋值语句
(1) 变量=表达式 (2) 表达式 一般地,运算结果在命令窗口中显示出来。如果在语句的最 后加分号,那么,MATLAB仅仅执行赋值操作,不再显示运 算的结果。 在MATLAB语句后面可以加上注释,注释以%开头,后面 是注释的内容。 例2.1 计算表达式的值,并将结果赋给变量x,然后显示 出结果。 在MATLAB命令窗口输入命令:
linspace(a,b,n)与a:(b-a)/(n-1):b等价。
logspace函数生成从10a到10b之间按对数等分的 n个元素的行向量,n如果省略则默认值为50。
21
2.3.3 矩阵的拆分
1. 矩阵元素
①MATLAB允许用户对一个矩阵的单个元素进行赋 值和操作。例如: A=ones(4);A(3,2)=200 只改变该元素的值,而不影响其他元素的值。 ② 如果给出的行下标或列下标大于原来矩阵的行数 和列数,则MATLAB将自动扩展原来的矩阵,并将 扩展后未赋值得矩阵元素置为0。例如: A(5,6)=10
10
2.2.3 数据的输出格式
MATLAB用十进制数表示一个常数,具体可 采用日常记数法和科学记数法两种表示方法。 在命令窗口中,默认情况下当数值为整数时, 数值计算的结果以整数显示;当数值为实数 时,以小数点后四位的精度近似显示,即以 短(short)格式显示;如果数值超过这一范 围,则以科学计数法显示结果。
matlab2012 readtable用法

MATLAB2012版本引入了readtable函数,用于读取表格数据并将其存储为Table数据类型。
这篇文章将介绍readtable函数的用法及其基本语法,帮助读者更好地理解和使用该函数。
一、readtable函数的基本语法readtable函数的基本语法如下:T = readtable(filename)T = readtable(filename, 'Name1',Value1, 'Name2',Value2, ...)其中,T表示读取到的表格数据存储的Table数据类型变量,filename表示要读取的数据文件名,'Name1',Value1,'Name2',Value2,...表示可选的参数名和参数值。
在不指定参数时,readtable函数会根据默认设置读取数据文件中的全部内容。
二、读取表格数据1. 读取CSV文件使用readtable函数读取CSV文件的基本语法如下:T = readtable('data.csv')其中,'data.csv'为要读取的CSV文件名,读取到的数据将以Table 数据类型存储在变量T中。
2. 读取Excel文件使用readtable函数读取Excel文件的基本语法如下:T = readtable('data.xlsx')其中,'data.xlsx'为要读取的Excel文件名,读取到的数据将以Table 数据类型存储在变量T中。
3. 读取其他格式文件除了CSV和Excel文件,readtable函数还可以读取其他格式的数据文件,例如txt文件、json文件等。
三、指定参数读取数据readtable函数还可以通过指定参数来读取指定范围的数据,指定数据类型等。
常用的参数及其功能如下:1. 'Range'参数使用'Range'参数可以指定读取数据的范围,例如:T = readtable('data.xlsx', 'Range', 'A1:D10')表示只读取Excel文件中A1到D10范围内的数据。
MATLAB数据及其运算

补:两个多维数组的 点运算。
3. MATLAB常用数学函数
函数使用说明:
(1) 三角函数以弧度为单位计算。 (2) abs函数可以求实数的绝对值、复数的 模、字符串的ASCII码值。 (3) 用于取整的函数有fix、floor、ceil、 round,要注意它们的区别。 (4) rem与mod函数的区别。rem(x,y)和 mod(x,y)要求x,y必须为相同大小的实矩阵 或为标量。
p25
A=[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ]
[1 3 5 11 13 15 ]
A( [1,3],[1 3 5] )
可以利用 一般向量 和 end 运算符来表示矩阵下标, 从而获得子矩阵。end表示某一维的末尾元素下标。
A( [1,end-பைடு நூலகம்],[1 :2:end] ) ?
例2.3 建立5阶方阵A,判断A的元素是否能被3整 除。
A =[24,35,13,22,63;23,39,47,80,80; ... 90,41,80,29,10;45,57,85,62,21;37,19,31,88,76]
P = rem(A,3)==0
其中,rem(A,3)是矩阵A的每个元素除以3的余数 矩阵。此时,0被扩展为与A同维数的零矩阵,P 是进行等于(==)比较的结果矩阵。
A(3,2)=200
采用矩阵元素的序号(Index)来引用矩阵元素。
1 矩阵元素的序号就是相应元素在内存中的排列顺序。在
4
MATLAB中,矩阵元素按列存储,先第一列,再第二列,依 次类推。例如
2 A=[1,2,3 ;
第2章 MATLAB数据及其运算

2.2.2 变量的管理 1.内存变量的 显示 与 删除 who和whos这两个命令用于显示在 MATLAB工作空间中已经驻留的变量名清单。 who命令只显示出驻留变量的名称,whos在 给出变量名的同时,还给出它们的大小、 所占字节数及数据类型等信息。
clear 命令用于删除MATLAB工作空间中的变量。 MATLAB工作空间窗口 专门用于内存变量的管 理。在工作空间窗口中可以显示所有内存变量的 属性。当选中某些变量后,再单击Delete按钮, 就能删除这些变量。当选中某些变量后,再单击 Open Selection按钮,将进入变量编辑器。通过 变量编辑器可以直接观察变量中的具体元素,也 可修改变量中的具体元素。
2.3 MATLAB矩阵的表示 矩阵的表示
2.3.1 矩阵的建立 1.直接输入法 最简单的建立矩阵的方法是从键盘直接输入 矩阵的元素。具体方法如下:将矩阵的元素用方 括号括起来,按矩阵行的顺序输入各元素,同一 行的各元素之间用 空格或 逗号 分隔,不同 行的元素之间用分号或 回车符 分隔。 2.利用 M文件 (程序文件) 建立矩阵 对于比较大且比较复杂的矩阵,可以为它 专门建立一个 M文件。下面通过一个简单例子 来说明如何利用M文件创建矩阵。
例2.1 计算表达式的值,并显示计算结果。
5 + cos 47° 1 + 7 − 2i
在MATLAB命令窗口输入命令: x=(5+cos(47*pi/180))/(1+sqrt(7)-2*i) 其中pi和i都是MATLAB预先定义的变量,分别代表 代表圆周率π和虚数单位。
3. 预定义变量 在MATLAB工作空间中,还驻留几个由系统本 身定义的变量。例如,用pi表示圆周率π的近 似值,用i,j表示虚数单位。 预定义变量有特定的含义,在使用时,应尽量 避免对这些变量重新赋值。 ans :代表 answer P18
第二章MATLAB数据及其运算

显然,linspace(a,b,n) =a:(b-a)/(n-1):b
17
矩阵元素的引用
方法一:通过下标(subscript)引用矩阵的元素
– 例如 A(3,2)=200
方法二:采用矩阵元素的序号(index)来引用矩阵元素。
例:利用M文件建立MYMAT矩阵
– (1) 启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵: MYMAT=[101,102,103,104,105,106,107,108,109; 201,202,203,204,205,206,207,208,209; 301,302,303,304,305,306,307,308,309];
主要内容 MATLAB 数据的特点 变量及其操作 MATLAB矩阵的表示 MATLAB数据的运算 字符串 结构数据和单元数据
1
MATLAB数据的特点
矩阵是MATLAB最基本、最重要的数据对象 – MATLAB的大部分运算或命令都是在矩阵运算的意义 下执行的
问题: – 单个数据如何用矩阵表示?x=5 – 1*1矩阵 – 向量如何用矩阵表示?a=[1,2,3] – 行向量:1*n矩阵;列向量:n * 1矩阵
A(1,2) = [ ] 出错!
A(1,2) = 0
可以
21
主要内容 MATLAB 数据的特点 变量及其操作 MATLAB矩阵的表示 MATLAB数据的运算 字符串 结构数据和单元数据
22
MATLAB数据的运算
算术运算
– 基本算术运算 » +(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方)
第2章_MATLAB数据及其运算

>>ndims(A)
%给出A的维数(2)
%下标A(3,2)元素转换成序号(9) %序号第6元素转换成下标 i=3,j=2 %将矩阵A重排成4行3列
>>sub2ind(size(A),3,2) >>[i j]=ind2sub(size(A),6) >>B=reshape(A,4,3)
19
2、矩阵拆分
第一个字母必需是英文字母;字母间不可留空格。 最多只能有 31 个字母,MATLAB 会忽略多余字母。 MATLAB 在使用变量时,不需预先说明,而且所有数值变 数均以预设的 double 数据型式储存。
5
2.赋值语句
(1) 变量=表达式 (2) 表达式 其中表达式是用运算符将有关运算量连接起来的 式子,其结果是一个矩阵。在第二种语句形式下, 将表达式的值赋予预定义变量ans。
A= 1 2 3 5 7 8 9 11 13 14 15 17
1 2 7 8 13 14
3 4 5 6 9 10 11 12 15 16 17 18
23
2.4 MATLAB数据的运算
2.4.1 算术运算 1、基本算术运算 MATLAB的基本算术运算有:+(加)、- (减)、*(乘)、/(右除)、\(左除)、^(乘方)。 (1)矩阵加减运算 两个矩阵A和B,则可以由A+B和A-B实现矩 阵的加减运算。运算规则是: 若A和B矩阵的维数相同,则A和B矩阵的相 应元素相加减。如果A与B的维数不相同,给出错 误信息。
-ascii选项使文件以ASCII格式处理,省略该选项 时文件将以二进制格式处理。 save命令中的-append选项控制将变量追加到 MAT文件中。
Matlab2012教程--经典教程

Matlab2012教程--经典教程第1章基础准备及入门1.1 最简单的计算器使用法为易于学习,本节以算例方式叙述,并通过算例归纳一些MATLAB最基本的规则和语法结构。
建议读者,在深入学习之前,先读一读本节。
2【例1.3-1】求[122(74)]3的算术运算结果。
本例演示:最初步的指令输入形式和必需的操作步骤。
(1)用键盘在MA TLAB指令窗中输入以下内容>> (12+2*(7-4))/3^2(2)在上述表达式输入完成后,按[Enter] 键,该指令被执行,并显示如下结果。
ans =2〖说明〗本例在指令窗中实际运行的情况参见图 1.3-1。
指令行“头首”的“>>”是“指令输入提示符”,它是自动生成的。
本书在此后的输入指令前将不再带提示符“>>”。
理由是:(A)为使本书简洁;(B)本书用MATLAB 的M-book写成,而在M-book中运行的指令前是没有提示符的。
5MATLAB的运算符(如+、- 等)都是各种计算程序中常见的习惯符号。
一条指令输入结束后,必须按[Enter] 键,那指令才被执行。
由于本例输入指令是“不含赋值号的表达式”,所以计算结果被赋给MATLAB的一个默认变量“ans”。
它是英文“answer”的缩写。
【例1.3-2】“续行输入”法。
本例演示:或由于指令太长,或出于某种需要,输入指令行必须多行书写时,该如何处理。
S=1-1/2+1/3-1/4+ ...1/5-1/6+1/7-1/8S =0.6345〖说明〗MA TLAB用3个或3个以上的连续黑点表示“续行”,即表示下一行是上一行的继续。
本例指令中包含“赋值号”,因此表达式的计算结果被赋给了变量S。
指令执行后,变量S被保存在MA TLAB 的工作空间(Workspace)中,以备后用。
如果用户不用clear 指令清除它,或对它重新赋值,那么该变量会一直保存在工作空间中,直到本MATLAB 指令窗被关闭为止。
第2章 MATLAB数据及其运算

第2章 MATLAB数据及其运算2.1 变量和数据操作2.2 MATLAB矩阵2.3 MATLAB运算2.4 矩阵的超越函数2.5 字符串2.6 结构体和单元数据2.7 稀疏矩阵2.1 变量和数据操作MATLAB的数据类型有数值型、字符型、结构体、单元等类型。
以上各种类型的数据都以矩阵的形式存在,所以矩阵 MATLAB的基本运算对象。
MATLAB的大部分运算或命令都是在矩阵的运算的意义下执行的,而且这种运算定义在复数域上。
在一般情况下,矩阵里的每个元素必须具有相同的数据类型。
对于MATLAB最常用的双精度型实数,双精度占64位(8个字节),用 double 实现类型转换。
此外还有单精度,占32位(4个字节),用single函数实现转换。
还有带符号整数和无符号整数,其其转换函数为int8,int16,int32,int64,uint8,ruint16,uint32,uint64等,函数名最后的一个数字表示的是相应的数据类型所占的位数。
除数值型数据以外,还有字符型数据,在MATLAB中用char实现转换。
在实际应用中,还需要将不同类型的数据构成矩阵的元素。
为此,MATLAB提供了结构体(structure)和单元(cell)数据类型。
此外,还有多维矩阵和工程中使用十分广泛的稀疏矩阵。
在用MATLAB进行程序设计时,还有一类很重要的数据类型,即逻辑型数据。
在MATLAB中,没有专门的逻辑型数据,而以数值1(或非0数)表示真,以数值0表示假,这一点和C语言的规则是一样的。
在输出格式中还可以用类似于C语言的格式符。
2.1.1 变量与赋值1.变量命名在MATLAB 7.0中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。
在MATLAB中,变量名区分字母的大小写。
MATLAB函数与命令必须用小写。
2.赋值语句(1) 变量=表达式(2) 表达式其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
行向量b。
>>b=1:10
b=1 2 3 4 5 6 7 8 9 10
2.2.2 创建一维数组变量
【例2-3】键入并执行c=1:2:10和d=1:2:9 >> c=1:2:10
c=1 3 5 7 9 >>d=1:2:9
d= 1 3 5 7 9
利用冒号“:”操作符创建行向量的基本语法格 式:
x=Start:Increment:End Start表示新向量x的第一个元素; 新向量x的最后一个元素不能大于End ; Increment可正可负,若负,则必须Start>End;
变量命令规则
变量名、函数名对字母的大小写是敏感的。如 myVar与myvar表示两个不同的变量。
变量名第一个字母必须是英文字母。 变量名可以包含英文字母、下划线和数字。 变量名不能包含空格、标点。 变量名最多可包含63个字符(6.5及以后版本)。
2.1 数值表示、变量及表达式
Matlab预定义的变量
第2章 Matlab数据及其 运算
Matlab数据类型非常丰富,除数值型、字符型等基本数 据类型外,还有结构体、单元等更为复杂的数据类型。 各种数据类型都以矩阵形式存在,矩阵是Matlab最基本的 数据对象,并且矩阵的运算是定义在复数域上的。
2.1 数值表示、变量及表达式
数值的记述
Matlab的数只采用习惯的十进制表示,可以带小数点 和负号;其缺省的数据类型为双精度浮点型(double)。 例如:3 -10 0.001 1.3e10 1.256e-6
若正,则必须Start<End,否则创建的为空向量。 若Increment=1,则可简写为:x=Start:End。
2.2.2、创建一维数组变量
第三种方法:利用函数linspace
函数linspace的基本语法
x= linspace(x1, x2, n)
该函数生成一个由n个元素组成的行向量; x1为其第一个元素; x2为其最后一个元素; x1、x2之间元素的间隔=(x2-x1)/(n-1)。 如果忽略参数n,则系统默认生成100个元素的行
>>a=[1 3 pi 3+5*i] %or a=[1, 3, pi, 3+5*i]
a= 1.0000 3.0000 3.1416 3.0000 + 5.0000i
所有的向量元素必须在操作符“[ ]”之内; 向量元素间用空格或英文的逗点“,”分开。
第二种方法:使用冒号“:”操作符
【例2-2】创建以1~10顺序排列整数为元素的
二维数组(矩阵matrix)。 多维数组。 有效矩阵:每行元素的个数必须相同,每 列元素的个数也必须相同。
2.2.1、数组(array)的概念
行向量 列向量 a(2,1)=3 a(1,2)=2 b(3)=3 c(2)=2
2.2.2 创建一维数组变量
第一种方法:使用方括号“[ ]”操作符
【例2-1】创建数组(行向量)a=[1 3 pi 3+5i]
数组定义:
按行(row)和列(column)顺序排列的实数或 复数的有序集,被称为数组。
数组中的任何一个数都被称为这个数组的
元素,由其所在的行和列标识,这个标识
也称为数组元素的下标或索引。Matlab将
标量视为1×1的数组。
12345
对m行、n列的2维数组a: a= 2 22 23 24 25
计为m×n的数组a;
用户只能临时覆盖这些预定义变量的值,Clear或重启MATLAB可恢 复其值。
2.1 数值表示、变量及表达式
MATLAB用十进制数表示一个常数,具 体可采用日常记数法和科学记数法两种表示 方法。
数据输出时用户可以用format命令设置或改 变数据输出格式。format命令的格式为:
format 格式符 其中格式符决定数据的输出格式(P21)
2.1数值表示、变量及表达式
运算符和表达式
运算 加 减 乘 除 幂
数学表达式 a+b a-b axb
a/b或a\b
ab
MATLAB运算符 MATLAB表达式
+
a+b
-
a-b
*
a*b
/或\
a/b或a\b
^
a^b
〖说明〗 Matlab用“\”和”/”分别表示“左除”和“右除”。对标量而言, 两者没有区别。对矩阵产生不同影响。 MATLAB表达式的书写规则与“手写方式”几乎完全相同。 表达式按与常规相同的优先级自左至右执行运算。 优先级:指数运算级别最高,乘除次之,加减最低。 括号改变运算的次序。
向量。
【例2-4】键入并执行x= linspace(1,2,5)
x=1.0000 1.2500 1.5000 1.7500 2.0000
2.1 数值表示、变量及表达式
复数及其运算
MATLAB中复数的表达:z=a+bi,其中a、b为 实数。
MATLAB把复数作为一个整体,象计算实数一
样计算复数。
i
【例2.3-1】复数z1=3+4i,z2=1+2i, z3= 2e 6
计算 z z1z2
z3
z1=3+4*i, z2=1+2*i, z3=exp(i*pi/6), z=z1*z2/z3
3 32 33 34 35
*行标识、列标识均从1开始; 4 42 43 44 45
行标识标识从左到右递增。
2.2.1. 数组(array)的概念
数组的分类
一维数组,也称为向量(vector) 。
➢ 行向量(row vector)、列向量(column vector)。
z_real=real(z), z_image=imag(z),
z_angle=angle(z), z_length=abs(z),
2.2 Matlab矩阵(数组)的表示
数组的概念 一维数组变量的创建 二维数组变量的创建 数组元素的标识与寻访 数组运算 多维数组
2.2.1. 数组(array)的概念
变量名 ans eps pi inf
意义 最近的计算结果的变量名 MATLAB定义的正的极小值=2.2204e-16
圆周率π ∞值,无限大
i或j
虚数单元,sqrt(-1)
NaN
非数,0/0、∞/ ∞
〖说明〗
每当MATLAB启动完成,这些变量就被产生。
MATLAB中,被0除不会引起程序中断,给出报警的同时用inf或 NaN给出结果。