当前位置:首页 >> 其它课程 >>

基本运算


第二章 Matlab基本运算

2.1 数据类型 分类 P33

1.常数 : 35、-123.43、3.1e-12、0.5e-3
2.变量
-变量命名规则
(1)大小写敏感; <

br /> (2)最大长度63字符;
(3)字母打头;
(4)不能与Matlab关键字冲突(if、while、for、end等)
-特殊变量:ans、pi、inf(INF)、NaN(nan),i(j)、nargin、nargout等
3.整数和浮点数( P35)
-整数:int8(16/32/64)、uint8(16/32/64)
-浮点数:single(单精度)、double(双精度,matlab默认数据类型)
例子:转换
(1)x=int8(2.4);
(2)y=int8(1546.34);
(3)z=int16(1546.34);
(4)x1=1/3;
(5)x2=3*x1;
(6)x3=double(x);
4.复数 (P36)
-定义方式:
(1)z=a+b*i
(2)z=a+bi
(3)z=r*exp(i*theta)
(4)z=complex(a,b)
-复数的运算函数:
real(),imag(),angle(),abs(),conj(),complex().

2.2 矩阵和数组的算术运算(P37)
空数组-->标量(一个元素)-->向量(一行/一列)-->矩阵(二维)-->数组
1.数组的创建
- [] %可用函数isempty()来判定
- , 或 空格 %行内元素间隔符
- ; 或 回车 %换行符
- 元素可以是 数组 或者 表达式
(1)空数组:用于清空数组、数组声明中。
a=[];
(2)向量
-form:step:to
e.g.: v = -3:2:6
-linspace()、logspace()
e.g.: x=linspace(1,10,10)
y=logspace(-2,2,5)
(3)矩阵
e.g.: a=[1 2 3;4 5 6;7 8 9
b=[1:5,linspace(6,10,5)]
(4)特殊矩阵和数组
- magic()、eye()、zeros()、ones()、rand()等
2.数组的操作(P40)
(1)访问
-全下标、单下标
e.g.: a=magic(3); %取出元素9
a(3,2) %全下标
a(6) %单下标
(2)子矩阵的产生
-全下标、单下标
e.g.:
a=magic(3);
b=a([1 2],[2 3]) %全下标:取出元素【1 6;5 7】构成一个2X2矩阵b
c=a(6:end); %单下标:取出元素【9,6,7,2】构成一个数组c
(3)数组赋值
-全下标、单下标、全元素
e.g.:
a=magic(5);
a([1,5],4)=0 %全下标
a(18:20)=[-1,-2,-3] %单下标
a=[0.8147 0.0975 0.1576 0.1419 0.6557;
0.9058 0.2785 0.9706 0.4218 0.0357;
0.1270 0.5469 0.9572 0.9157 0.8491;
0.9134 0.9575 0.4854 0.7922 0.9340;
0.6324 0.9649 0.8003 0.9595 0.6787];%全元素
(4)矩阵合并
- c=[a b]; %左右合并
- c=[a;b]; %上下合并
e.g.:
a=ones(2,3);
b=eye(2,3);
c=[a b];
d=[a;b];
(5).数组元素的删除
e.g.:
x=magic(3);
x(:,2)=[];
x(4)=[];%变为行向量
x=[];
3.矩阵和数组函数
(1)常用函数:
- det(行列式)、rank(秩)、inv(求逆)、eig(特征值)、diag(对角阵)、
qr(正交分解)、triu(上三角)、tril(下三角)
(2)数组翻转:
- flipud、fliplr、flipdim(x,dim)、rot90(x,k)
(3)数组查找:
-find
e.g.:
x=magic(3)
y=find(x>6)
x(y)
[r c]=find(x>6)
(4)数据统计
-max、min、mean、std、var、sort、sum等
4.矩阵和数组的算术运算
(1)矩阵运算:+、-、*、/、^
- +、-、*:矩阵尺寸匹配(除非其中一个是标量)
- 除法运算:\(左除)、/(右除)
e.g.:
2*a-3*b+c=8;
a-b+c=7;
a+3*b+c=6;
A=[2,-3,1;1,-1,1;1,3,1];
B=[8;7;6];
X=A\B;
- 乘方运算(^)
e.g.:
A=magic(3);
A1=A^2;
A3=A^0;
-矩阵转置
e.g.:
A=magic(3);
B=A'
C=A+B.*i;%构造一个复数矩阵
C'
-矩阵算术运算函数:sqrtm/expm/logm等
(2)数组运算:.*、./、.\、.^、.'
e.g.:
A=[1 2 3;4 5 6]
B=[2 3 1;5 3 9]
C=A.*B %注意与A*B区别
D=A./B
E=A.^B
A.' %对于实数矩阵<=>A'
F=A+B*i%对于复数矩阵与F'有区别
F' %转置同时求共轭
F.' %只转置不求共轭
-数组运算的基本函数:
abs\sqrt\exp\ceil\rem\log\pow2等
e.g.:
A=magic(3);
B=sqrt(A); %求A各元素的函数值
(3)稀疏矩阵:sparse
-sparse(i,j,s,m,n) %直接创建 0 1 0
e.g.: 0 0 0
i=[ 3 1 3]; 2 0 3
j=[ 1 2 3];
s=[ 2 1 3];
A=sparse(i,j,s,3,3);
-sparse(A) %由矩阵A直接转换为稀疏矩阵
e.g.:
A=eye(4);
B=sparse(A);

2.3 字符串
1.创建字符串
-直接赋值:
e.g.:
s1='matlab R2009a'
s2='数字媒体技术'
s3='Xi''an' %输出字符串 Xi'an
-字符串组合构成新串:利用 ,和;组合新串
e.g.:
str=[s1,' ',s2,' ',s3] % ,连接多个字符串(也可用空格)
str2=[s2;s3] %出错, 原因?
-字符串的存储空间:每个字符以ascii码的形式存放,占2个字节
e.g.:
s2 ?
s3 ?
2.字符串函数
-串合并:strcat/strvcat(char)
e.g.:
str2=[s2;s3] %出错
str3=strvcat(s2,s3)
str4=char(s2,s3)
-字符串与数值转换
-字符串转数值:abs/str2num/str2double/等
-数值转字符串:num2str/mat2str/char/等
-字符串常用函数:比较、查找、格式转换等
-strcmp/findstr/lower(upper)/eval
e.g.:
s1='matlab R2009a'
s2='clc'
e=strcmp(s1,s2)
n=findstr(s1,'a')
str=upper(s1)
eval(s2)

2.4 日期和时间
1.表示格式
-日期字符串:
e.g.:
d1='09/19/2012' %m/d/y
d2='19-Sep-2012' %d-m-y
-连续的日期数值
-日期向量:[Y, M, D, H, MN, S]
-日期格式转换:datenum/datestr
2.日期时间函数
-date/now/clock
-year/month/day/hour/minute/second
-datestr(d,f)
-cputime/tic/toc/etime
e.g.:
year(date)
datestr(now,'yyyy-mmmm-dd')
tic
for k=1:1000
2^k;
end
toc
2.5 元胞数组和结构体
1.元胞数组
(1)创建
A={'cell',1:5;[1 2;3 4],{0:pi/2:2*pi,'matlab'}};%直接创建
B(1,1)={'cell'};%使用元胞创建'{}'
B(1,2)={1:5};
B(2,1)={[1 2;3 4]};
B(2,2)={{0:pi/2:2*pi,'matlab'}};
C{1,1}='cell'; %使用元胞内容创建
C{1,2}=1:5;
C{2,1}=[1 2;3 4];
C{2,2}={0:pi/2:2*pi,'matlab'};
- D=cell(2,2); %使用cell函数创建元胞数组
(2)元胞数组操作
-用{}取元素内容
-用()取元素:定位元胞位置
-用deal函数取多个元胞元素的内容
(3)元胞数组的内容显示
-celldisp、cellplot
2.结构体
(1)创建
-直接创建:
e.g. stu(1).name='李思';
stu(1).age=20;
stu(1).sex='男'
-struct函数创建
e.g.:
stu(1)=struct('name','李思','age',20,'sex','男');
(2)获取结构体内部数据:
- .
- getfield(stu,{1},'age');
- fieldnames(s);%获取所有字段名
- [] %合并相同字段数据
(3)结构体操作
-rmfield(stu,'sex');
-stu=setfield(stu,{1},'name','马六');
(4)结构体转换为元胞数组
-stu_cell=struct2cell(stu);

2.7 关系运算/逻辑运算
1.逻辑变量:
- 0(false)、1(true)
- logical函数可以将数值型转换为逻辑型:非零->逻辑1,数值0->逻辑0
2.关系运算:>、<、>=、<=、==、~=、
e.g.:
- a=1:8;
r1=a>6; %数组与标量比较
- c=[ 6 3 7 8 5 1 2 4];
r2=c==a; %两个数组比较
3.逻辑运算:
- &、|、~ 、xor %元素逻辑运算
- &&、|| %先决逻辑运算
e.g.:
t=0:3
y1=(t(1)~=0)&&(100/t(1)>10) %使用先决与
y2=(t(1)~=0)&(100/t(1)>10) %使用一般与
- bitand(按位与)、bitor(按位或)、bitcmp(按位非)、bitxor(按位异或)
e.g.:
a=8;
b=7;
c=bitand(a,b);
d=bitor(a,b);
4.运算符优先级:
()--> '--> ^--> +/- --> ~ 等等(P72)
e.g.:
l = x>0&&x<3;

2.8 数组的信息获取
-尺寸:size/length/numel/ndims
-数组检测:isempty/isvector/isscalar/issparse/isnumeric/isa

2.9 多项式
1.多项式求根、求值
-matlab中多项式的表示方式:行向量
e.g.: f(x)=x^3-2*x-1
f=[1 0 -2 -1];
-求根:roots
由跟构建多项式:poly([r(1),r(2),...])
-求值:polyval(p,x)/polyvalm(p,m)
2.多项式算术运算
-乘法:conv
-除法:deconv
e.g.:
p1=[1 2];
p2=[1 -1];
p3=conv(p1,p2);
[p3_2,r]=deconv(p3,p2);
-部分分式展开:[r,p,k]=residue(B,A)
e.g.:
A=[1,-2,-1,2];
B=[1,-5];
[r,p,k]=residue(B,A);
-多项式的求导:polyder
e.g.:
A=[1,-2,-1,2];
d=polyder(A)
3.多项式的拟合与插值
-拟合:polyfit(x,y,n)
e.g.:
绘制KNo3的溶解度随温度变化的曲线,并求出曲线对应的多项式2阶拟表达式
实验数据:
温度(°C) 20 30 40 50 60 70 80
溶解度(g) 31.6 45.8 63.9 85.5 110 142 168
x=[20 30 40 50 60 70 80];
y=[31.6 45.8 60.9 85.5 110 142 168];
p=polyfit(x,y,2);
fx=0.0171*x.^2+0.618*x+11.6;
plot(x,y,'ro-',x,fx,'b*-');
-插值
e.g.:接上例,求34°C时KNo3溶解度?
x=[20 30 40 50 60 70 80];
y=[31.6 45.8 60.9 85.5 110 142 168];
y1=interp1(x,y,34,'linear');
hold on
plot(34,y1,'*');
y2=interp1(x,y,34,'cubic');
plot(34,y2,'>');
y3=interp1(x,y,34,'spline');
plot(34,y3,'o');



相关文章:
C51的基本运算
C51的基本运算_电脑基础知识_IT/计算机_专业资料。实用C51 的基本运算 1) C51 的算术和赋值运算 (1)算术运算符和算术表达式 C51 语言一共支持 5 种算术运算符号...
编写程序实现图的各种基本运算
编写程序实现图的各种基本运算_计算机软件及应用_IT/计算机_专业资料。仲恺农业工程学院实验报告纸计算机科学与工程学院(院、系) 学号 姓名 实验日期 专业 班 教师...
VB基本运算和表达式
VB基本运算和表达式_其它考试_资格考试/认证_教育专区。VB 基本运算和表达式 VB 的基本运算包括算术运算、关系运算和逻辑运算三大类。 把变量、常量、运算符、函数和...
第6章 基本运算
第6章 基本运算 本章主要介绍 COBOL 开发中常用的一些基本运算。此处所说的基本运算包括三大类型的运算:算 术运算、关系运算和逻辑运算。本章将依次讲解这三种运算...
集合的基本运算
集合的基本运算_数学_高中教育_教育专区。奋斗的人生才有意义 集合的基本运算 一、复习回顾: 1.已知 A={1,2,3},S={1,2,3,4,5},则 A S;{x|x∈S ...
基本数据类型与基本运算
基本数据类型与基本运算_理学_高等教育_教育专区。计算机第二章 基本数据类型与基本运算 本章主要介绍程序设计中高级语言提供的数据类型 数据类型和其上允许的基本运算...
基本运算
数学专题训练—基本运算(共性作业一) 一、 1. 化简求值 1 x-1 ÷(x- ). x x 2. a2 a +2a 2 ·( 4 a2 + ) a-2 2-a 3. ( 1 1 ? )( ...
排序基本运算
排序基本运算_数学_自然科学_专业资料。软件技术基础实验四——排序基本运算 班 学号: 级 姓名: : 一、实验题目编写一个程序,设计一个主程序完成如下功能 由输入...
运算放大器16个基本运算电路
运算放大器16个基本运算电路_电子/电路_工程科技_专业资料 暂无评价|0人阅读|0次下载|举报文档 运算放大器16个基本运算电路_电子/电路_工程科技_专业资料。电子...
向量及向量的基本运算
向量及向量的基本运算_高二数学_数学_高中教育_教育专区。向量及向量的基本运算 向量及向量的基本运算一、教学目标:1.理解向量的有关概念,掌握向量的加法与减法、...
更多相关标签: