第一章 基本的数学运算与矩阵运算
第一章 基本的数学运算与矩阵运算
MATLAB基本语法
变量
-
MATLAB中的变量不需要声明
-
变量名区分大小写,强调变量名长度不超过63位
-
变量名以字母开头,可以由字母、数字和下划线组成,但不能使用标点
-
MATLAB中的保留变量不适合做变量名
-
常见的保留变量
保留变量 含义 ans
存储上一条语句的运算的结果 i、j
虚数单位 Inf
无穷(\(∞\)) eps
浮点相对精度,即1.0到下一个浮点数之间的距离(值为\(2.2204e\mathop{{}}\nolimits^{{-16}}\)) NaN
非数,表示未定义或不可表示的值 pi
圆周率 -
可以使用\(iskeyword\)命令可以查看MATLAB语言所有的关键字,这些关键字也不允许被用作变量名
-
-
在MATLAB中,变量的调用优先级高于函数,因此变量名不应该覆盖内置函数
- 例如:
cos='This string.'; cos(8) % 对字符串进行索引取值,取第8个字符得到'r'
-
若某函数被变量名所覆盖,则调用
clear <变量名>
可以取消绑定在该函数名上的变量名谨慎使用
clear
命令,因为该命令后若不加参数,则表示清除当前工作区内的所有变量
变量类型
MATLAB中的变量类型有: logical
,char
,numeric
,cell
,struct
以及由他们组成的数组或矩阵
-
整型
-
带符号整型
分为带符号8位、16位、32位、64位整型int8();int16();int32();int64();
-
无符号整型
分为无符号8位、16位、32位、64位整型uint8();uint16();uint32();uint64();
-
-
浮点型
-
单精度型
在内存中占用4个字节single() %将其他类型转换成单精度
-
双精度型
在内存中占用8个字节,数值数据默认是double类型double() %将其他类型转换成双精度
-
-
复数型
- 分为实部和虚部,默认为双精度型
real() %求复数的实部 imag() %求复数的虚部
判断变量数据类型的函数
下列函数可以对变量类型进行判断:
函数 | 作用 |
---|---|
isinteger |
判断输入参数是否为整型数数组 |
islogical |
判断输入参数是否为逻辑量数组 |
isnumeric |
判断输入参数是否为数值数组 |
isreal |
判断输入参数是否为实数数组 |
ischar |
判断输入参数是否为字符数组 |
iscell |
判断输入参数是否为元胞数组 |
isfloat |
判断输入数组是否为浮点数组 |
ishandle |
判断输入数组是否有效的图形句柄 |
isempty |
判断输入数组是否为空 |
isprime |
确定哪些数组元素为质数 |
isnan |
确定哪些数组元素为NaN |
isinf |
确定哪些数组元素为Inf |
isequal |
判断数组是否相等 |
数字型变量的显示格式
直接定义的数字型变量,默认是以double
形式存储的
我们可以通过format <显示格式>
改变数字型变量的显示格式
显示格式 | 说明 | 例子 |
---|---|---|
short |
短定点格式.显示小数点后4位 | 3.1416 |
long |
长定点格式.对double 类型变量显示小数点后15位,对float 类型变量显示小数点后7位. |
3.141592653589793 |
shortE |
短科学计数法,显示小数点后4位.并带有科学计数法标记. | 3.1416e+00 |
longE |
长科学计数法.对double 类型变量显示小数点后15位,对float 类型变量显示小数点后7位.并带有科学计数法标记. |
3.141592653589793e+00 |
bank |
银行格式.显示小数点后2位. | 3.14 |
hex |
十六进制格式. | 400921fb54442d18 |
rat |
比例格式 | 355/113 |
>> x = 1.3333333333;
>> format short
>> x
x =
1.3333
>> format shortE
>> x
x =
1.3333e+00
MATLAB命令行
-
在一行命令后使用
;
抑制输出,否则运算结果将被显示在终端上. -
其他实用的命令:
命令 作用 clc
清除终端的输出 clear
清除当前工作区内所有变量 who
以简略格式显示工作区内所有变量 whos
以复杂格式显示工作区内所有变量
MATLAB数字运算
MATLAB表示数学表达式
MATLAB常见运算符,优先级顺序(从前到后):括号()
、乘方^
、乘除法*
,/
、加减法+
,-
数学表达式例子:
数学表达式 | MATLAB命令 |
---|---|
\(\cos\left(\sqrt{\frac{{\left(1+2+3+4\right)}^3}{5}}\right)\) | cos(sqrt((1+2+3+4)^3/5)) |
\({sin \left( \sqrt{{ \pi }} \left) +ln \left( tan \left( 1 \left) \right) \right. \right. \right. \right. }\) | sin(sqrt(pi))+log(tan(1)) |
\(2\mathop{{}}\nolimits^{{3.5 \times 1.7}}\) | 2^(3.5*1.7) |
\(e\mathop{{}}\nolimits^{{sin \left( 10 \right) }}\) | exp(sin(10)) |
内置常用的数学函数
- 三角函数(正弦:
sin
、余弦:cos
、正切:tan
、余割:csc
、正割:sec
、余切:cot
等)
-
参数分为弧度和角度,如果是角度要在函数名后加
d
,以示区别sin(pi/2) %结果为1 sind(90) %结果为1
- 指数和对数函数(常用)
函数名 | 含义 |
---|---|
exp |
指数 |
log |
自然对数 |
log10 |
常用对数(以 10 为底) |
log2 |
以 2 为底的对数和浮点数分解 |
sqrt |
平方根 |
-
abs函数
-
可以求实数的绝对值、复数的模、字符串的ASCII码值
abs(-4) %结果为4 abs(3+4i) %结果为5 abs('a') %结果为97
-
-
用于取整的函数
- fix函数(fix:固定)固定取靠近0的那个整数,即舍去小数取整
- floor函数(floor:地板)向下取整
- ceil函数(ceil:天花板)向上取整
- round函数按照四舍五入取整
fix(-6.6) %结果为-6 fix(6.6) %结果为6 floor(-4.5) %结果为-5 floor(4.5) %结果为4 ceil(-3.2) %结果为-3 ceil(3.2) %结果为4 round(1.1) %结果为1
-
其他常用函数
-
用于求余函数
-
rem函数,两个参数,第一个是被求余的数值,第二个是对什么值求余
rem(6.5,5) %结果为1.5000
-
-
用于求素数的函数
-
isprime函数,如果是素数则返回1,不是则返回0
%输出1到100的素数 x=1:100; k = isprime(x); %将全为0、1的数值赋值给k矩阵 k1 = find(k); %查找非0值的下标并赋值给k1 p = x(k1) %输出对应下标的矩阵
-
-
MATLAB矩阵运算
矩阵的建立
直接输入
在MATLAB中,使用[]
将待输入的矩阵内容括起来,使用空格或逗号,分隔行内变量,使用分号分隔每一行
MATLAB命令 | 矩阵 |
---|---|
[1 2 3 4] |
$[ 1 \ \ 2 \ \ 3 \ \ 4 ] $ |
[1,2,3,4] |
$[ 1 \ \ 2 \ \ 3 \ \ 4 ] $ |
[1; 2; 3; 4] |
\({ \left[ {{\left. \begin{array}{*{20}{l}}{1}\\{2}\\{3}\\{4}\end{array} \right] }}\right. }\) |
分块矩阵
一个大的矩阵可由多个小矩阵拼接而成
>> A = [1,2,3;4,5,6;7,8,9];
>> B = [-1,-2,-3;-4,-5,-6;-7,-8,-9];
>> C = [A,B;B,A]
C =
1 2 3 -1 -2 -3
4 5 6 -4 -5 -6
7 8 9 -7 -8 -9
-1 -2 -3 1 2 3
-4 -5 -6 4 5 6
-7 -8 -9 7 8 9
%建立复数矩阵
>> A = [1,2,3;4,5,6]
>> B = [4,5,6;7,8,9]
>> C = A+B*i
C =
1.0000 + 4.0000i 2.0000 + 5.0000i 3.0000 + 6.0000i
4.0000 + 7.0000i 5.0000 + 8.0000i 6.0000 + 9.0000i
冒号表达式
-
格式:e1:e2:e3
-
e1:初始值
-
e2:步长,省略表示步长为1
-
e3:终止值
-
建立一个以e1开始,e2结束,步长为e2的行向量
>> D = 1:3:10 D = 1 4 7 10
-
-
linspace函数
-
格式:linspace(a,b,n)
- a:第一个元素
- b:最后一个元素
- n:元素总数,省略默认为100
- 建立一个以a开始,b结束,共有n个数值的行向量,等间距
>> linspace(1,pi,6) ans = 1.0000 1.4283 1.8566 2.2850 2.7133 3.1416
-
-
logspace函数
-
格式:logspace(a,b,n)
- a:第一个元素
- b:最后一个元素
- n:元素总数,省略默认为100
- 建立一个以a开始,b结束,共有n个数值的行向量,对数间隔的数据
>> logspace(0, 2, 6) ans = 1.0000 2.5119 6.3096 15.8489 39.8107 100.0000
-
定义特殊矩阵
命令 | 得到的结果 |
---|---|
eye(n) |
得到一个\(n\times n\)的单位矩阵 |
zeros(n1, n2) |
得到一个\({n\mathop{{}}\nolimits_{{1}} \times n\mathop{{}}\nolimits_{{2}}}\)的全0矩阵 |
ones(n1, n2) |
得到一个\({n\mathop{{}}\nolimits_{{1}} \times n\mathop{{}}\nolimits_{{2}}}\)的全1矩阵 |
diag(vector) |
得到一个以向量vector 中内容为对角线的对角矩阵 |
随机数矩阵
命令 | 得到的结果 |
---|---|
rand |
均匀分布的随机数 |
randn |
正态分布的随机数 |
randi |
均匀分布的伪随机整数 |
randperm |
整数的随机排列 |
结构矩阵
-
格式:结构矩阵元素.成员名 = 表达式
>> a(1).x1 = 10;a(1).x2 = 'zhang';a(1).x3 = [1,2;3,4]; >> a(2).x1 = 20;a(2).x2 = 'li';a(2).x3 = [5,6;7,8]; >>a a = 包含以下字段的 1×2 struct 数组: x1 x2 x3 >> a(1) ans = 包含以下字段的 struct: x1: 10 x2: 'zhang' x3: [2×2 double] >> a(2) ans = 包含以下字段的 struct: x1: 20 x2: 'li' x3: [2×2 double]
-
结构矩阵的常用函数
函数 作用 struct
创建结构体 struct2cell
将结构体转换为元胞数组 cell2struct
将元胞数组转换为结构体 isstruct
判断某变量是否是结构体 structfun
对结构体的每个字段都应用某函数 fieldnames
获取结构体的所有字段名 isfield
判断结构体是否包含某字段 getfield
获取结构体某字段的值 setfield
为结构体中的某字段赋值 rmfield
删除结构体中的某字段 orderfields
为结构体字段排序
单元矩阵(元胞数组)
元胞数组是一个可以容纳不同类型元素的数据结构
我们可以使用{ }
像定义矩阵一样定义元胞数组:
A = { [1 4 3; 0 5 8; 7 2 9] 'Anne Smith' ;...
3+7i -pi:pi:pi}
有两种方式访问元胞数组中的数据,分别是: 单元索引()
和内容索引{}
.
因为元胞数组的子集仍为元胞数组,在索引器内容的使用,我们有必要指明我们要访问的的是一个子元胞数组还是元胞数组对应区域中的内容.
- 使用单元索引
()
,我们得到的是一个子元胞数组. - 使用内容索引
{}
,我们得到的是元胞数组对应区域中的内容
详细请阅读Matlab帮助文档
元胞数组的常用函数
函数 | 作用 |
---|---|
cell |
创建一个元胞数组 |
iscell |
判断某变量是否为元胞数组 |
cell2mat |
将元胞数组转为矩阵 |
cell2struct |
将元胞数组转为结构体 |
mat2cell |
将数组转换为指定大小元胞数组 |
num2cell |
将数组转换为相同大小的元胞数组 |
struct2cell |
将结构体转换为元胞数组 |
celldisp |
递归显示元胞数组中的内容 |
cellplot |
以图像形式绘制元胞数组的结构 |
cellfun |
对元胞数组的每个元胞应用某函数 |
高维元胞数组
一个三维的元胞数组可以有行(row),列(column),层(layer)三个维度.在对元胞数组进行索引时,优先级从高到低的顺序分别是: 行→列→层
使用cat
函数可以在指定维度上对元胞数组进行拼接
矩阵的索引
-
MATLAB中的矩阵是以列先存储的.且索引下标从1开始
-
矩阵有两种索引方式: 按一维索引和按二维索引,对于一个一般的矩阵,其索引顺序如下:
\[{ \left[ {{\left. \begin{array}{*{20}{l}} {1\text{ }\text{ }4\text{ }\text{ }7}\\ {2\text{ }\text{ }5\text{ }\text{ }8}\\ {3\text{ }\text{ }6\text{ }\text{ }9} \end{array} \right] }}\right. }or{ \left[ {{\left. \begin{array}{*{20}{l}} { \left( 1,1 \left) \text{ }\text{ } \left( 1,2 \left) \text{ }\text{ } \left( 1,3 \right) \right. \right. \right. \right. }\\ { \left( 2,1 \left) \text{ }\text{ } \left( 2,2 \left) \text{ }\text{ } \left( 2,3 \right) \right. \right. \right. \right. }\\ { \left( 3,1 \left) \text{ }\text{ } \left( 3,2 \left) \text{ }\text{ } \left( 3,3 \right) \right. \right. \right. \right. } \end{array} \right] }}\right. } \] -
矩阵的索引可以使用冒号
:
,表示选取所有行或所有列 -
矩阵的索引可以是一个或两个向量,表示选中向量内的所有行或所有列
例子:
原矩阵 | 索引 | 得到的结果 | 解释 |
---|---|---|---|
\({A\text{ }=\text{ }{ \left[ {{\left. \begin{array}{*{20}{l}}{1\text{ }\text{ }2\text{ }\text{ }3}\\{4\text{ }\text{ }5\text{ }\text{ }6}\\{7\text{ }\text{ }8\text{ }\text{ }9}\end{array} \right] }}\right. }}\) | A(8) |
\(6\) | 取矩阵第8个元素 |
\({A\text{ }=\text{ }{ \left[ {{\left. \begin{array}{*{20}{l}}{1\text{ }\text{ }2\text{ }\text{ }3}\\{4\text{ }\text{ }5\text{ }\text{ }6}\\{7\text{ }\text{ }8\text{ }\text{ }9}\end{array} \right] }}\right. }}\) | A([1 3 5]) |
$[ 1 7 5 ] $ | 分别取矩阵第[1 3 5] 个元素放入新矩阵的对应位置 |
\({A\text{ }=\text{ }{ \left[ {{\left. \begin{array}{*{20}{l}}{1\text{ }\text{ }2\text{ }\text{ }3}\\{4\text{ }\text{ }5\text{ }\text{ }6}\\{7\text{ }\text{ }8\text{ }\text{ }9}\end{array} \right] }}\right. }}\) | A([1 2; 3 4]) |
\({ \left[ {{\left. \begin{array}{*{20}{l}}{1\text{ }\text{ }4}\\{7\text{ }\text{ }2}\end{array} \right] }}\right. }\) | 分别取矩阵第[1 2; 3 4] 个元素放入新矩阵的对应位置 |
\({A\text{ }=\text{ }{ \left[ {{\left. \begin{array}{*{20}{l}}{1\text{ }\text{ }2\text{ }\text{ }3}\\{4\text{ }\text{ }5\text{ }\text{ }6}\\{7\text{ }\text{ }8\text{ }\text{ }9}\end{array} \right] }}\right. }}\) | A(3,2) |
\(8\) | 取矩阵第3行第2列的元素 |
\({A\text{ }=\text{ }{ \left[ {{\left. \begin{array}{*{20}{l}}{1\text{ }\text{ }2\text{ }\text{ }3}\\{4\text{ }\text{ }5\text{ }\text{ }6}\\{7\text{ }\text{ }8\text{ }\text{ }9}\end{array} \right] }}\right. }}\) | A([1,2], :) |
\({ \left[ {{\left. \begin{array}{*{20}{l}}{1\text{ }\text{ }2\text{ }\text{ }3}\\{4\text{ }\text{ }5\text{ }\text{ }6}\end{array} \right] }}\right. }\) | 取矩阵第[1 2] 行和所有列的交叉项 |
\({A\text{ }=\text{ }{ \left[ {{\left. \begin{array}{*{20}{l}}{1\text{ }\text{ }2\text{ }\text{ }3}\\{4\text{ }\text{ }5\text{ }\text{ }6}\\{7\text{ }\text{ }8\text{ }\text{ }9}\end{array} \right] }}\right. }}\) | A([1 3], [1 2]) |
\({ \left[ {{\left. \begin{array}{*{20}{l}}{1\text{ }\text{ }2}\\{7\text{ }\text{ }8}\end{array} \right] }}\right. }\) | 取矩阵第[1 3] 行和第[1 2] 列的交叉项 |
-
序号和下标的转换
-
sub2ind函数:将矩阵中指定元素的行列下标转换成存储的序号
-
格式:D = sub2ind(S,I,J)
- D:序号
- S:行和列组成的向量,可用size函数获取
- I:转换矩阵元素的行下标
- J:转换矩阵元素的列下标
>> A = [11:13;15:17] A = 11 12 13 15 16 17 >> D = sub2ind(size(A),[1,2;2,2],[1,1;3,2]) %获取(1,1)、(2,1)、(2,3)、(2,2)的序号并组成矩阵赋值给D D = 1 2 6 4
-
-
ind2sub函数:将矩阵中指定元素的序号转换成行列下标
-
格式:[I,J] = ind2sub(S,D)
- I:行下标
- J:列下标
- S:行和列组成的向量,可用size函数获取
- D:序号
>> [I,J] = ind2sub([3,3],[1,3,5]) %获取3x3矩阵中序号为1、3、5的行列下标 I = 1 3 2 J = 1 1 2 %下标为(1,1)、(3,1)、(2,2)
-
-
矩阵的操作
运算符
运算符 | 操作 | 形式 | 例子 |
---|---|---|---|
+ |
矩阵与向量相加 | A+b |
[6 3] + 2 = [8 5] |
- |
矩阵与向量相减 | A-b |
[6 3] - 2 = [4 1] |
+ |
矩阵与矩阵对应位置相加 | A+B |
[6 3] + [4 8] = [10 11] |
- |
矩阵与矩阵对应位置相减 | A-B |
[6 3] - [4 8] = [2 -5] |
* |
矩阵与矩阵相乘 | A*B |
[6 3] * [4 8]' = 48 |
.* |
矩阵与矩阵对应位置相乘 | A.*B |
[6 3] * [4 8] = [24 24] |
/ |
矩阵与矩阵右除(等价于A*inv(B) ) |
A/B |
[6 3] / [4 8] = 0.6 |
\ |
矩阵与矩阵左除(等价于inv(A)*B ) |
A\B |
[6 3] / [4 8] = [0.06667 1.3333; 0 0] |
./ |
矩阵与矩阵对应位置右除 | A./B |
[6 3] ./ [4 8] = [1.5 0.375] |
.\ |
矩阵与矩阵对应位置左除 | A.\B |
[6 3] .\ [4 8]' = [0.6667 2.6667] |
^ |
矩阵与向量乘方 | A^b |
[1 2; 3 4]^3 = [37 54; 81 118] |
.^ |
矩阵与矩阵对应位置乘方 | A.^B |
[1 2; 3 4].^[1 2; 3 4] = [1 4; 27 256] |
函数
对于矩阵:
函数 | 作用 | 例子 | 结果 |
---|---|---|---|
max(A, [], dim) |
获取矩阵A 的dim 维度上的最大值(dim =1,代表列;dim =1,代表行) |
max(A, [], 1) |
\([ 7 \ \ 8\ \ 9]\) |
min(A, [], dim) |
获取矩阵A 的dim 维度上的最小值(dim =1,代表列;dim =1,代表行) |
min(A, [], 2) |
\([ 1 \ \ 4\ \ 7]\) |
sum(A, dim) |
获取矩阵A 的dim 维度上的和 |
sum(A, 1) |
\([ 12 \ \ 15\ \ 18]\) |
mean(A, dim) |
获取矩阵A 的dim 维度上的平均值 |
mean(A, 1) |
\([4 \ \ 5\ \ 6]\) |
sort(A, dim, direction) |
获取矩阵A 的dim 维度上按direction 顺序排序结果('ascend' 表示升序(默认值),'descend' 表示降序) |
sort(A, 1, 'descend') |
\({ \left[ {{\left. \begin{array}{*{20}{l}}{7\text{ }\text{ }8\text{ }\text{ }9}\\{4\text{ }\text{ }5\text{ }\text{ }6}\\{1\text{ }\text{ }2\text{ }\text{ }3}\end{array} \right] }}\right. }\) |
size(A, dim) |
获取矩阵A 的dim 维度上的形状.若不指定dim ,则返回整个矩阵的形状. |
size(A) |
\([ 3 \ \ 3 ]\) |
find(A, n) |
获取矩阵A 前n 个非零元素的索引 |
find(A,5) |
\([1 \ \ 2\ \ 3\ \ 4\ \ 5]\) |
改变矩阵的形状
-
reshape函数:在矩阵元素不变的情况下,将矩阵A重新排成mxn的矩阵
- 只改变原矩阵的行数和列数不改变原矩阵元素的个数和存储顺序
- reshape(A,m,n)
- A:原矩阵
- m:行数
- n:列数
>> A = [1:4;5:8;9:12] A = 1 2 3 4 5 6 7 8 9 10 11 12 >> B = reshape(A,4,3) B = 1 6 11 5 10 4 9 3 8 2 7 12
-
A( : ):将矩阵A堆叠成一个列向量
>> A = [1:3;4:6] A = 1 2 3 4 5 6 >> B = A(:) B = 1 4 2 5 3 6
MATLAB字符处理
字符串的表示
-
字符串是用单引号括起来的字符序列
-
如果字符串中字符含有单引号,则该单引号字符要用两个单引号表示
>> 'I''m a student' ans = 'I'm a student'
-
建立多行字符串,形成字符串矩阵
- 多行字符串的列数必须都相等,用空格调节
%求ch的1到5位的字符串、反向表示、小写字母转成大写字母及ch的长度 ch = 'ABc123Def456'; %ch的1到5位的字符串 subch = ch(1:5); subch %反向表示 revch = ch(end:-1:1); revch %小写字母转成大写字母 k = find(ch>='a'&ch<='z'); ch(k) = ch(k)-('a'-'A'); ch %ch的长度 length(ch) %下面是结果 subch = 'ABc12' revch = '654feD321cBA' ch = 'ABC123DEF456' ans = 12
字符串的操作
-
字符串的执行
格式:eval(s)
- s:字符串
- 作用:将字符串转换成对应matlab中的命令执行
eval('clear') %等价于 clear 命令
-
字符串与数值之间的转换
- abs函数和double函数:将字符串转化成对应的ASCII码矩阵
- char函数:将ASCII码转化成对应的字符串矩阵
-
字符串的比较
- 利用关系运算
- 两个字符串长度相等
- 依次对对应ASCII码进行比较
- 结果是一个数值(0或1)向量
- 利用字符串比较函数
- strcmp(s1,s2):比较s1和s2是否相等,结果为1或0
- strncmp(s1,s2,n):比较两个字符串前n个字符是否相等,结果为1或0
- strcmpi(s1,s2):比较在忽略大小写的情况下,s1和s2是否相等,结果为1或0
- strncmpi(s1,s2,n):比较在忽略大小写的情况下,两个字符串前n个字符是否相等,结果为1或0
- 利用关系运算
-
字符串的查找和替换
- findstr(s1,s2):返回短字符串在长字符串中的开始的位置
- strrep(s1,s2,s3):将s1中的子字符串s2替换为字符串s3
文件读写
MATLAB支持的文件类型如下:
文件内容 | 扩展名 | 读取文件的函数 | 写入文件的函数 |
---|---|---|---|
MATLAB数据 | *.mat |
load |
save |
Excel表格 | *.xls ,*.xlsx |
xlsread |
xlswrite |
空格分隔的数字 | *.txt |
load |
save |
读写MATLAB格式的数据
MATLAB工作区内的数据可以以*.mat
格式保存在文件中.使用save
函数将数据存入文件,使用load
函数从文件中读取数据.
-
save
函数的语法如下:
save(filename,variables)
将变量variables
以二进制形式存入文件中.save(filename,variables,'-ascii')
将变量variables
以文本形式存入文件中.
-
load
函数的语法如下:
load(filename)
从二进制形式文件中读取数据.load(filename,'-ascii')
从文本形式文件中读取数据.
其中参数filename
和variables
都是字符串格式,若不指定variables
参数,则将当前工作区内所有变量存入文件中.
复杂的数据格式,如
struct
和cell
,不支持以二进制格式存储.
读写Excel表格
使用xlsread
和xlswrite
函数可以读写Excel数据,语法如下:
-
读取Excel文件的语法:
[num,txt,raw] = xlsread(filename,sheet,xlRange)
Score = xlsread('04Score.xlsx') Score = xlsread('04Score.xlsx', 'B2:D4') [Score Header] = xlsread('04Score.xlsx')
-
写入Excel的语法:
xlswrite(filename,A,sheet,xlRange)
M = mean(Score); xlswrite('04Score.xlsx', M, 1, 'E2:E4'); xlswrite('04Score.xlsx', {'Mean'}, 1, 'E1');