Professional Documents
Culture Documents
李爱滨
材料科学与工程学院
每周二 晚 6.30 正心 13
2017 b matlab下载 http://pan.baidu.com/s/1pL2xw4F 密码: cd7l
2017b matlab 安装
( 1 )三个文件解压在一个文件夹中,并且运行 setup.exe
( 2 ) 选文件安装密钥09806-07443-53955-64350-21751-41297
:
( 3 )选择安装路径,大概需要10G
10G D盘
的空间,建议选择 D盘
( 4 )安装过程大概需要 1-2 小时装完,请知悉
( 5 )破解文件 crack 中netapi32.dll
netapi32.dll 复制和替换安装目录
license_standalone.lic
(6) “ license_server.lic” 和“ license_standalone.lic” 拷贝
license_server.lic
到到 \MATLAB\R2017b\licenses\ 目录下 , 重新打开 matlab 即可
无桌面快捷方式,可通过 C:\Program
Files\MATLAB\bin\matlab.exe 打开,
右键发送桌面快捷方式,方便下次打
开。
相传每个大学都有一棵树
每年树上挂着很多人
06/29/2022
世界最著名的三大数学应用软件
MATLAB MATHEMATICA MAPLE
美国 美国 加拿大
MathWorks
http://www.maplesoft.com
www.wolfram.com
06/29/2022
6 10 月 9 号 3 讲课 3.3 函数 M 文件
3.4 程序结构控制
3.4.1 条件(选择)结构
3.4.2 循环结构
3.4.3 try-catch 结构
3.4.4 其它指令
3.5 程序调试
第四章 MATLAB 数值运算
4.1 多项式计算
7 10 月 16 号 3 讲课 4.2 曲线拟合
4.3 数值插值
4.4 函数极值
4.5 非线性方程问题求解 函数文件
数值分析 高等数学 4.6 常微分方程的数值求解
Ode45 命令
4.7 数值微分与积分
8 10 月 23 号 3 讲课 第五章 MATLAB 概率统计
5.1 随机变量和分布
5.1.1 二项分布的概率计算
5.1.2 正态分布的概率计算
概率论与数理统计 5.1.3 常用概率分布
5.2 数据描述的统计分析
5.3 参数估计
数据分析 5.4 假设检验
5.5 回归分析
第六章 MATLAB 符号运算
6.1 符号计算入门
/2022 6.2 符号对象的创建
高等数学
9 10 月 30 3 讲课 6.3 精度计算
号 6.4 符号表达式运算
6.5 符号矩阵计算
6.6 符号微积分
6.7 符号方程的求解
6.8 符号积分变换
10 3 讲课 第七章 图形绘制
11 月 6 号 7.1 绘图的基本技术
7.1.1 线型属性
7.1.2 图形标注
7.1.3 坐标轴的控制
7.1.4 图形数据取点
7.1.5 图形保持
7.2 二维绘图
7.2.1 函数 plot( 基本绘图 )
7.2.2 函数 fplot ( 自适应采样绘图 )
7.2.3 其他二维图形
11 11 月 13 3 讲课 7.3 三维绘图
号 7.4 符号计算绘图
7.5 三维图形的精细控制与修饰处理
7.6 图形窗口简介
第八章 图形用户界面( GUI )设计
8.1 GUI 概述
8.2 编程设计 GUI
8.2.1 图形用户界面对象和句柄
8.2.2 界面菜单设计
8.2.3 用户界面控件设计
06/29/2022
12 11 月 20 号 3 讲课 8.3 GUIDE 创建 GUI
8.3.1 图形用户界面开发环境 (GUIDE)
8.3.2 GUIDE 提供的控件工具
8.3.3 创建图形用户界面的编辑工具
8.3.4 创建图形用户界面实例
8.4 编写界面控件的回调函数
第九章 Simulink 基础
9.1 Simulink 的概况
9.2 Simulink 的动态系统仿真原理
13 11 月 27 号 2 讲课 9.3 Simulink 模块库
9.4 Simulink 简单模型的建立
9.5 Simulink 仿真的运行
9.6 常见仿真实例
9.7 子系统与模块封装技术
期末总结和答疑
①平时出勤和课堂测试 30 分
②期末大作业 70 分 大作业考核方式
第一章 MATLAB 基础入门
1.1 MATLAB 入门
1.1.1 MATLAB 发展史
1.1.2 MATLAB 主要功能和特点
1.1.3 MATLAB 操作界面
1.1.4 MATLAB 的通用命令
1.2 MATLAB 常用运算符和数学函数
1.3 变量和变量数据类型
1.4 数值型数据
1.5 矩阵和数组
1.6 字符串
1.7 单元数组(元胞数组)
1.8 结构数组
06/29/2022 11
1.1.1 MATLAB 发展历史 Matrix Laboratory
调用格 det(A)
式:
25 阶行列式乘法次数 3.7*1026
06/29/2022
矩阵的乘法 : A*B <==> mtimes
a11 a1t b11 b1n
j
A i 行
设 B
列
a a b b
m1 mt mt t1 tn t n
c11 c1n
前矩阵 后矩阵
则 AB C A 列数 B 行数
c c
m1 mn mn
(i 1, 2,...m ; j 1, 2,...n)
其中 c ai1b1 j ai 2b2 j ... ait btj
ij
Matrix Laboratory
美国新墨西哥大学 Cleve Moler 在 70 年代后期
FORTRAN 设计矩阵运算语言 .
http://www.mathworks.com
中国网站为 http://www.mathworks.cn/
Jack Little
Matlab 的发
行 1.0 (操作系统
1984 年, Matlab DOS ,数值计算及数据图
形化)
simulink )
名称 含义 名称 含义 名称 含义
sin 正弦 csc 余割 atanh 反双曲正切
cos 余弦 asec 反正割 acoth 反双曲余切
tan 正切 acsc 反余割 sech 双曲正割
cot 余切 sinh 双曲正弦 csch 双曲余割
asin 反正弦 cosh 双曲余弦 asech 反双曲正割
acos 反余弦 tanh 双曲正切 acsch 反双曲余割
atan 反正切 coth 双曲余切 atan2 四象限反正切
acot 反余切 asinh 反双曲正弦
sec 正割 acosh 反双曲余弦
基本数学函数
2 、语言简洁紧凑, 使用方便, 易学
易用
2
例 : 写程序求一元二次方程的根 ax bx c 0
b b 2 4ac
求根公式为 x1, 2 (a 0)
2a
0 2 个不相等实数根
b 2 4ac 0 2 个相等实数根
0 2 个复数根
det(magic ( 2
5))
第三代过程语言:算法语言
C 程序
FORTRAN 、 BASIC 、 Pascal 、 C
#include <stdio.h> FORTRAN 程序
#include <math.h> 4 READ (5,5) A,B,C
void solv(float a,float b,float c)
{ (30 5 FORMAT (3F4.1)
IF (A) 15,35,15 (23 行 )
double disc,twoa,term1,term2;
if (a == 0.0)
if (b == 0.0)
行) 15 X1R=-B/(2.0*A)
D=B*B-4.0*A*C
printf("No answer due to input error!\n"); IF (D) 10,20,30
else 10 X2R=X1R
printf("The single root is: %f\n",-c/b); X1I=SQRT(-D)/(2.0*A)
else X2I=-X1I
{ GOTO 34
disc = b * b - 4 * a * c; 20 X2R=X1
twoa = 2 * a;
term1 = -b/twoa;
X1I=0.0
term2 = sqrt(fabs(disc))/twoa; X2I=0.0
if(disc < 0.0) GOTO 34
printf("Complex root: \n real part = %f, image part = %f\n",term1,term2); X2R=X1R-SQRT(D)/(2.0*A)
else X1R=XIR+SQRT(D)/(2.0*A)
printf("real root :\n root1 = %f, root2 = %f\n",term1+term2,term1-term2); X1I=0.0
} X2I=0.0
}
void main()
34 WRITE (6,6)A,B,C,X1R,X1I,X2R,X2I
{ X0=X
float a,b,c; 6 FORMAT (1X,7(F7.4,3X))
printf("Input a,b,c:");
scanf("%f%f%f",&a,&b,&c);
过程化 GOTO 4
STOP 。
“ 让某物怎么样去干什么”
solv(a,b,c); END
}
第四代:非过程化语言
交互式程序设计环境,自动生成程序,提高软件效率,常
有 VC 、 VB 、 VF 、 MATLAB 等。
MATLAB 程序求解
③ 6x2-5x+1=0 干什么事情
>> r=roots([6,-5,1])
roots
r =0.5000 数值法
0.3333 syms x
y=solve(6*x^2-5*x+1=0)
solve
y = 1/3
符号法
1/2
内部函数 roots 源程序
edit roots
(60 行 )
MATLAB R2013b 约有 2100 个函
数
题 函 数化
问
所有计算 单 。
,使 用 简
工具 箱化
3、、丰富的工具箱 解决同类问题的函
( toolbox
)
Matlab Main Toolbox——matlab 主工具箱 数
Control System Toolbox—— 控制系统工具箱
功 Communication Toolbox—— 通讯工具箱
能 Financial Toolbox—— 财政金融工具箱 源程序的开放性
System Identification Toolbox—— 系统辨识工具箱
型 Fuzzy Logic Toolbox—— 模糊逻辑工具箱 二次开发
和 Higher-Order Spectral Analysis Toolbox—— 高阶谱分析工具箱
Image Processing Toolbox—— 图象处理工具箱
领 LMI Control Toolbox—— 线性矩阵不等式工具箱
域 Model predictive Control Toolbox—— 模型预测控制工具箱
Neural Network Toolbox—— 神经网络工具箱
型 Optimization Toolbox—— 优化工具箱
工 Partial Differential Toolbox—— 偏微分方程工具箱
Robust Control Toolbox—— 鲁棒控制工具箱
具 Signal Processing Toolbox—— 信号处理工具箱 已经广泛应用于科学研究及工
箱 Spline Toolbox—— 样条工具箱
Statistics Toolbox—— 统计工具箱
程计算各个领域,如科学计
Symbolic Math Toolbox—— 符号数学工具箱 算、机械动力、化工、计算机
Simulink Toolbox—— 动态仿真工具箱 通讯、汽车、金融等领域。
Wavele Toolbox—— 小波工具箱
………………
2015年四个新的工具箱,79个产品进行更新
MATLAB R2018a , 96 个
4 数学计算功能强大 Matlab 产品的基
础 矩阵运算、多项式
数值计算
数据插值与曲线拟合数值微分
与数值积分
线性代数方程求根
非线性方程求根
常微分方程
数值计算应用 概率统计
力学: 常用有限元法求解偏微分方程;
航空与自控问题:经常用到数值线性代数与常微分方
计算机仿真:核心问题求解用到差分方程、常微分方程
数字信号处理领域:离散的快速 Fourier 变换 (FFT)
大部分学科中数学问题
能解决
罗伦兹吸引子与“蝴蝶效应” 空气系统理论
巴西亚马逊雨林一只蝴蝶翅膀偶尔振动,也许两周后就
会引起美国得克萨斯州的一场龙卷风。
天气变幻莫测,建立温度、压强和风速的三个参数系统的微分方程,模拟
气候变化
[t,w]=ode45
ode45(@(t,w)[-8/3*w(1)+w(2)*w(3);-
10*w(2)+10*w(3);-w(1)*w(2)+28*w(2)-w(3)],
[0,80],[0,0,eps]')
06/29/2022
plot3(w(:,1),w(:,2),w(:,3))
千里之堤毁于蚁穴
圆周率( Pi )是圆的周长与直径的比值
圆周率计算 一个无理数,即无限不循环小数
计算 Pi 的纪录 古人用割圆法
日期 计算者 纪录
前 20 世纪 巴比伦人 π= 3.125
前 20 世纪 印度人 π= 3.160493...
前 12 世纪 中国 π=3
前 6 世纪中 圣经列王记上 7 章 23 节 π=3
前 3 世纪 阿基米德 π=3.1418
96 边形
480 年 祖冲之 7位 3.1415926 <π< 3.1415927
1775 年 欧拉 指出 π 可能是超越数
1947 年 D. F. Ferguson π=808 数
1949 年 J. W. Wrench 爵士和 L. R. Smith π=2,037 位小数
首次使用计算机
1955 年 J. W. Wrench 爵士及 L. R. Smith π=3,089 位小数
2.0600e+1
1957 年 G.E.Felton π=7,480 位小数
2060 亿位
1999 年 金田康正和高桥大介 π=206,000,000,000 位 37h
2011 年, IBM " 蓝色基因 /P" 超级电脑算出 π2 的 60,000,000,000,000 位二进制小
数 6.0000e+13
长期以来有关 Pi 的猜测:
① 认为 Pi 中每一个数,每两个数,每三个数都服从均匀
分布,既在数学上, Pi 被认为是一个正规数。至少就
目前计算出来的位数看,统计性验证了这个猜测的正
确性。
② 通过编程计算 Pi ,可以有效测试计算机硬件的可靠性
(算错了说明硬件有问题)。
06/29/2022
符号计算 MATLAB+
解析运算、数学公式
符号运算工具箱
推导 +MAPLE
利用计算机作符号演算来完成数学公式推导 , 用数学
表达式形式给出解。
函数展开、极限
函数求导求积、
代数方程 >> syms x y z
>> s=x^2+y^2+z^2;
微分方程 >> s3=int(int(int(s,x),y),z) % 三重积分
s3 =(x*y*z*(x^2 + y^2 + z^2))/3
5 、绘图和数字图像处理功能
绘二维、三维和多维图形;
自带绘图函数,给图形添加标注、标题、坐标轴等;
三维图形可设置视角、色彩控制及光照效果等;
可创建三维动画效果及隐函数绘图等;
可数字图像处理
强大数据可视化功能
概率分布 disttool
cftool
定制图形用户界面 GUL
funtool 函数计算器图形用户界面
taylortool
matlab 将很多函数库封装被用户当傻瓜相机
用。
06/29/2022
命令窗口不是唯一与 Matlab 的交互方式。
东北大学 硕士论文 2014年6月
基于可靠性的航空发动机叶片蠕变 寿 命 研
究
MATLAB开发了航空发动机叶片的蠕变寿命预测与可靠性分析系统软件
编译了蠕变寿命预测与分析的计算程序(MATLAB语句),并且在程序
中各算法都加W注释,方便程序员二次开发修改。在此MATLAB平台,
运用GUI的可视化技术,编写出良好的人机界面,实现了输入输出数据的
可视化。将蠕变寿命模型、数据的统计方法及分析数据的输入、输出封装在
一起,达到了提高工作效率和缩短计算时间的目的
06/29/2022
• 6 、编 程 功 能
① 简单易用的程序语言
② M 语言编程功能,编写脚本或函数文件实现自己
算法 , 有程序结构控制、函数调用、输入输出等
程序语言特征 .
③ 开放的平台,“不排他”。通过外部程序接口,
与 C/C++ 、 Fortran 等语言编写程序连接调用,
发挥各自的优势,提高工作效率。
7 、 Simulink 动态系统仿真
SIMULINK ,动态系统建模、仿真、分析集成环境,方便
非线性、随机动态系统的仿真。
元件级电路仿真 非语言编程
图形化模块仿真 框图模型
Simulink 仿真应用
06/29/2022
1.1.2.2 应用和实用 1. 科研学术应用
06/29/2022
06/29/2022
2. 毕业设计
06/29/2022
3. 应届生实习
06/29/2022
4. 求职
06/29/2022
5. 学以致 解决问题的过程:
用
实际问题 数学模型 MATLAB 编程求
解
石油化工装置高温设备 11 年
大连理工大学硕士学位论文 一般设计寿命 10 万小时
长期使用后 Cr 一 Mo 钢炉管组织性能与剩余寿命研 持久实验 500-700℃
究 20 元 /1h
炉管 t=538℃ 的持久实验,设计 10 万小时的持久强度 200 万
等温线法外推持久强度 clear
t=[1410,648,614,516,218.5,305,79];
幂函数 A B x=log10(t);
拟合 s=90:10:150;
y=log10(s); 43.55MPa
yp=polyfit(x,y,1)
例 非线性曲线拟合 数学建模竞赛
t y
非线性原型函数 a2 t a3t
y a1 (e e )
待定系数向量 a=[a1,a2,a3]
10
Jm min F (a1 ,a2 ,a3 ) [a1(e
j 1
a2
e
a3
) y j ]2 最小
数学建模书籍
06/29/2022
学习目标 通过学习 MATLAB 语言、了解和掌握编程语
言、计算功能、绘图和动态系统仿真功能
2. 为毕业设计实施以及将来工作岗位的实际应用
06/29/2022
1.1.2.3 MATLAB 教材
06/29/2022
06/29/2022
1.1.2.3 MATLAB 教材 MATLAB 的主推参考教材
第 1 章 基于 MATLAB 的可视化计算概述
第 2 章 MATLAB 的基本运算
ATLAB 可视化科学计算 第 2 版 第 3 章 MATLAB 中的矩阵运算及应用
者 :刘加海著
版发行 : 杭州:浙江大学出版社 , 2018.03
第 4 章 MATLAB 在编程方面的应用
BN 号 : 978-7-308-16780-2 第 5 章 MATLAB 在图形设计上的应用
书定价 : 78.00
考文献格式 : 刘加海著 . 第 6 章 MATLAB 在计算数学中的应用
MATLAB 可视化科学计算 第 2 版 [M].
藏馆 :16
第 8 章 MATLAB 在概率论与数理统计
06/29/2022
1.1.2.3 MATLAB 教材 MATLAB 的主推参考教材
前言
第一版前言
第一章 MATLAB 概述
第二章 数组的运算基础
第三章 字符串
第四章 MATLAB 数值运算基础
第五章 MATLAB 符号运算
第六章 图形处理功能
第七章 MATLAB 的图形用户界面 GUI
第八章 图像、视频和声音
第九章 MATLAB 程序设计基础
“ 十三五”普通高等教育本科规划教材
第十章 MATLAB
Simulink 基础
基础及应用 第 3 版
第十一章 MATLAB 的综合应用
06/29/2022 附录 A MATLAB 函数命令索引表
下载:哈工大图书馆 \ 电子图书 \ 超星图书
06/29/2022 http://book.duxiu.com/ebook.do?go=index
1.1.3 MATLAB 操作界面
MATLAB 系统 5 部分
1. 工作环境 集成了许多应用程序和工具的工作空间,如命令窗
口、工作空间、编辑器
2. MATLAB 语 基于矩阵、数组的高级语言,程序结构、脚本和函数文
言 件,
06/29/2022
1.1.3 MATLAB 操作界面 (2011 年前 ) Windows 版
1.1.3.1 旧版操作界面
菜单和工具栏
工作空
间窗口
菜单和工具栏
当前内存中
当前文件夹 命令行窗口 command window
列出所有变
工作空间窗口 workspace 量的信息
命令历史窗口 command history
当前文件夹 current folder
命令
历史窗口
主要交互窗口,供输入命令, 保留安装后所
命令窗口 实现计算 。 有历史记录和
在命令提示符 >> 后输入命 使用时间
令,回车,给出计算结果,保
开始菜单 存在工作区窗口
1.1.3.2. 新版 MATALB 操作界面
(从 2012 年)
三个主菜单:主页、绘图、应用程序 APPS
2014 年
汉化版
旧版操作界面:主页 home
常用的功能都放于桌面
06/29/2022
1 、主页 home
文 变 代 仿 环 资
件 量 码 真 境 料
变量文件 .mat
分析当前文件夹中 matlab 代
码文件,找出效率低下的编
码和潜在的错误并生成相应
的代码分析器报告
文 1 ) . 脚本文文 .M
件 2 ) . 函数文件 .M
3 ) . 图形文件 .FIG
4 ) . APP:guide 图形用户界面 FIG 文件和 M
文件
06/29/2022 5 ) .simulink: model 模型和仿真文件 slx(mdl)
变
2. 变量数据导入 Excel 和文本数据读取
量
06/29/2022 导入到工作空间
excel 数据读取
num=xlsread(‘filename’)
Filename: excel 文件名,( *.xlsx )
num: 返回 xls 中数值型数据;
ss=xlsread(‘stress.xlsx')
文本数据的读取
[a,b,c…]=textread(‘filename.txt’)
Filename: 文本文件名,( *.txt ) Y=textread('xrd.txt')
[a,b,c] :文件中读取的数据变量组。 [x,y]=textread('xrd.txt')
[x,y]=textread('10vm.txt','%f%f')
当前工作文件夹
I. 指 MATLAB 运行
变量的文件夹;
II. 只有当前工作目
录或搜索路径下
文件、函数可被
调用或运行。
当前工作目录窗口
单击“ Current
Folder” 窗口,活动窗
口
【 View 】设置如何显
示当前目录下的文件。
搜索路径
Matlab 所有文件都被存放在一个结构严谨目录树上,
工作时按优先次序搜索这些变量、函数、文件。
06/29/2022
旧版绘图
06/29/2022
3. APPS 应用程序主菜单( 2013 年起)
APPS 来源:
① 可以使用 MATLAB 集成的各种内置工具箱
② 以及下载、安装别人的工具箱
③ 或者打包自己的工具箱供其他人使用
06/29/2022
4. Matlab R2014a/b 设置英文 / 中文界面
06/29/2022
MWLOCALE_TRANSLATED
06/29/2022
5. MATLAB 帮助命令:
函数搜索指令
① Help , helpwin , d
oc ,
② 词条搜索 lookfor
③ 模糊查询。
65
(1) help 、 helpwin , doc 命令
help 显示当前帮助系统中所有项目,搜索路径中
Help
所有的目录名称;
Help+ 函数 显示该函数的帮助说明
名
Helpwin+ 函数名
文本;
doc+ 函数名 搜索 M 比较方便
超文本;
搜索 HTML( 超文本链
接标记语言 ) 文件,比较方便
(2) lookfor + 函数名部分字母
(3) 模糊命令
输入命令前几字
母,按 Tab 键,
会列出所有这几
个字母开头命令。
1. 常用命令
2. 编辑输入内容的功能键
3. 标点
1. 常用命令的功能
2. 编辑输入内容的功能键
a=2 3
cd,whos
Matlab 所有
标点符号必须在
英文状态下输入
1.2 MATLAB 常用运算符和数学函数
算术运算符 四则运算 + - * / 和乘方 代数函数
^
常用数学函数 对数函数 log , 指数函数 exp ,三角函数
(超越函数) sin
关系运 等于 = =, 大于 > ,大于等于 >=,
算符 小于 <, 小于等于 <=, 不等于 ~=
(2<x<3
逻辑运算符 与( and & ) , 或 ( or | ), )
非 ( not ~ ), 与非( xor ) (2<x&x<3)
逻辑型变量 用 1 和 0 表示真假状态两个状态,
一般用于关系运算或逻辑运算
>> a=3;>> c=a>3 c=a<6&a>2
c = logical 0 c = logical
1
运算符的优先等级表
括号的优先级别最高,用括号来改变默认的优先等级
a=1>[-1,-2/3,3]'-3|[-1,-2/3,3]'.^2>0
1.3 变量和变量数据类型
1.4 数值型数据
1.5 矩阵和数组
1.6 字符串
1.7 单元数组(元胞数组)
1.8 结构数组
06/29/2022
1.3 变量和变量数据类型
1.3.1 变量与赋值
1. 变量命名
①英文字母开头,后接字母、数字或下划线字符序列
②字母间不可留空格和标点符号
③区分字母大小写
判断变量名真假
④避免使用函数名和常量
⑤变量名不能超过 64 个字符 isvarname
>> isvarname('@wb')
ans = logical 0
2. 定义变量 : 赋值方式
赋值变量 = 数值
例
b=0.2222
b= 0.2222 ;
0.22222 回车
保留变量 ans
0.22222
x=sin(30) /5
赋值变量 = 表达
例 式 计算表达式的值,并显示计算结果。
x=1+2i;
y=3-sqrt(17);
z=(cos(abs(x+y))-sin(78*pi/180))/(x+abs(y))
whos 显示变量名、大小、所占字节数及数
据类型等信息。
clear 用于删除工作空间中的变量。
只能清除命令窗口的所有信息,工作空间
clc
中的变量仍然保留
3. 变量文件保存和调用
当前工作空间中有用变量长久地保留下来,扩展名是 .mat 。
>> cc=22
保存 save variable cc =22
>> load cc
格式为: >> cc
调用 load filename.mat variable
cc = 22
1.3.4 变量的数据类型 赋值的数据类型
syms a b
符号对象
hfun=@+ 函数
名
稀疏矩阵
常用 {1,’2’ }
’123’ x.real=3
大型程序中使用
double single
storage
数值运算
使用 matlab
浮点型
无需声明数
据变量类型
06/29/2022
查询元素数据类型信息的部分函数(逻辑关系函数)
1.4 数值型数据
数值型 双精度浮点数;单精度浮点数; 整数
1.4.1 浮点数类型
名称、存储空间、表示范围和转换函数:
单精度 , 内存只分配 32 位( 4 字
节) , 缺省状态是双
双精度分配 64 位( 8 字节)
精度的浮点数
数值计算都是双精度
1.4.2 整数型 是存储类型,只用于内存的有效存储
数据类型的名称、表示范围和转换函数表:
无符号 8 位整数用于保存图像数据
06/29/2022
1.4.3 数值型数据输出格式
1. 十进制数表示数据
数据都双精度数表示和存储
2. 数值量和数据格式显示:
当整数时,整数显示(缺省);
当实数时,小数点后 4 位精度近似显示。
数值型数据输出 -----Format 显示格式
默认
仅 2 位有效数 无论用何显示格式,
Matlab 都用双精度计算;
改变显示方式,不会改变
计算结果精度
标量 1*1 矩阵 m*n
1.5 矩阵和数组
MATLAB 将矩阵和数组作为基
1.5.1 矩阵 本运算量,所有数值功能是以矩
阵和数组为基本单元进行的
1. 矩阵直接输入法
>> A = [1 2 3; 4 5 6; 7 8 9]
1 2 3
用方括号 “ [ ]” 括起
4 5 6
同一行中元素间用 空格 或 逗号 分隔
7 8 9
行与行间用 分号分开
元素可以是数值,表达式或复数.
06/29/2022
2. 矩阵元素存储和访问
(1). 矩阵 A 元素存储顺序
a ij
1列 2列 n列
size(A) : 获取矩阵的行数和列数
(2) 矩阵元素标识 ----- 访问矩阵元素
元素单下标表示法
A(k)
A 矩阵第 k 存储位置元素
>> A=[1,2,1;3,4,3;5,6,5]
A=
1 2 1 a(3)
3 4 3 ans =5
5 6 5
1 个向量 x=[x(1), x(2)……x(n)]
x2 0.6 cos( x1) 0.3 sin( x2) 0 function y=myfun(x)
y(1)=x(1)-0.6*sin(x(1))-0.3*cos(x(2));
X=[x(1),x(2)] y(2)=x(2)-0.6*cos(x(1))+0.3*sin(x(2));
06/29/2022 单下标常用在数值求解非线性方程组,微分方程组
元素全下标表示法:A(i,j)
A 矩阵第 i 行第 j 列元素
(3). 矩阵元素标识的转化:
全下标转化单下标 : ind=sub2ind(size(A),i,j)
单下标转化全下标 : [i,j]=ind2sub(size(A),k)
06/29/2022
例
>> a=[1,2,3;4,5,6;7,8,9]
a =1 2 3
4 5 6
7 8 9 >> sub2ind(size(a),2,1)
>> a(4) ans = 2
ans = 2 [r,c]=ind2sub (size(a),2)
>> a(1,2)
ans = 2
例 (4) 查找矩阵下标 find
功能:查询满足某关系矩阵下标
k=find( 关系式 )
k: 满足条件的元素单下标数
Find 矩阵元素查找矩阵中大于 4 、小于 8 的那些元
素。
aa = 8 1 6
3 5 7
4 9 2
>> kk=find(aa>4&aa<8)
kk = 5
7
8
>> aa(kk)
ans = 5
6
7
1.5.2 数组
MATLAB 使用最广的一种数据类型,
数组不是数学概念,而是一般高级语言都有的概念,是计
算机编程语言上对一组数的通称,是一种数据结构数组元
素不一定是数值型,也可以使字符串型、单元结构
数值型的数组和矩阵, MATLAB 运算不同,矩阵运算从
矩阵整体出发,采用线性代数的运算规, 数组运算从数
据元素出发,针对每个元素运算
数组结构和矩阵相同,表示、建立、存
储无区别;区别是运算符和运算法则。
空数组
一维相当于向量
数组结构 二维相当于矩阵
多维数组
1.6 字符串
1.6.1 字符串数组的构造
1.6.2 字符串与数值间的转换
非常重要数据类型
创建字符串
字符串 由一个或多个字符构成字符串,用单引号 ‘ 括起
’
一维字符串:‘ 字符串’以行向量形式
存储
每个字符就是行向量一个元素。
例
country = 'China';
size(country) 1 5
class(country) char
ischar ( country ) 1
>> a=1234;
>> c='1234';
>> d='1 2 3 4'
a 1x1 8 double
c 1x4 8 char
d 1x7 14 char
06/29/2022
Isstr 是否为字符串
Isletter 是否英文字母
Isspace 是否空格
a='this is a'; 例
>> isletter(a)
ans = 1 1 1 1 0 1 1 0 1
>> isspace(a)
ans = 0 0 0 0 1 0 0 1 0
deblank(c) 自动删除 char 生成的空
格
>> a='sss '
例 a =sss
>> deblank(a)
ans =sss
>> whos
Name Size Bytes Class
a 1x6 12 char
ans 1x3 6 char
1.2.3.2 字符串数值转换的函数
1. 字符串转换为数值函数
2. 数值转换为字符串函数
数值转换为字符
串
例 >> Whos
a= num2str(a)
ans = Name Size Bytes
8 1 6 8 1 6 Class
3 5 7 3 5 7 a 3x3 72 double
4 9 2 4 9 2
ans 3x7 42 char
>> a=pascal(3)
a =1 1 1
1 2 3 >> whos
1 3 6 Name Size Bytes Class Attributes
>> aa=int2str(a) a 3x3 72 double
aa =1 1 1 aa 3x7 42 char
1 2 3
1 3 6
3.eval(s) 运行字符串的表达式功能
>> 'a=sin(45)'
例
ans =a=sin(45)
>> eval('a=sin(45)')
a =.850903524534118
double('a=sin(45)')
s= 8.023562824723015
>> quadl(‘x.^2’,1,2) % 积分
ans = 2.333333333333333
06/29/2022
1.7 单元数组(元胞数组 cell array )
1.7 单元数组 (元胞数组 cell
array )
1 . 单元变量:用 { } 表示
① 不同类型的数据在一个变量名下管理;
② 每元素为一个单元 (cell) ;
③ 每单元可存放任何类型大小和维数的数据。
2. 创建两种方式:
④ 直接赋值语句 { }
>> a={[1,2],[1,2;3,4];'sdfg',linspace(1,5,3)} 例
a =[1x2 double] [2x2 double]
'sdfg' [1x3 double]
>> class(a)
ans =cell
>> whos a
Name Size Bytes Class Attributes
a 2x2 312 cell
a(i,j) 只显示该元素压缩内容
单元数组元素访问 :
a{I,j} 显示该元素具体内容
例
>>b{2,2}
0.097131781235848 0.317099480060861 0.438744359656398
0.823457828327293 0.950222048838355 0.381558457093008
0.694828622975817 0.034446080502909 0.765516788149002
>>b(2 ,2)
[3x3 double]
显示单元数组全部内容 :
>> celldisp(a)
>> a{1,1} =1 2
celldisp(a) a{2,1} =sdfg
a{1,2} =1 2
3 4
a{2,2} = 1 3 5
② cell 函数定义法
创建空单元数组:A=cell(m,n) 或
cell(size(a))
例 >> a=cell(4,3)
a =[] [] []
[] [] []
[] [] []
[] [] []
>> a(1,2)={1:10};
然后再为数组元素赋值 >> a =
[] [1x10 double] []
[] [] []
[] [] []
[] [] []
例
>> ss=cell(2,2)
ss = [] []
[] []
>> ss{1,2}=2;
>> ss{2,1}='3'
ss = [] [2]
'3' []
>> ss{2,1}=magic(3)
ss = [] [2]
[3x3 double] []
>> ss{2,1}={magic(3)}
ss = [] [2]
{1x1 cell} []
06/29/2022
1.8 结构数组(结构体 structure )
1. 结构型变量: ① 不同类型大小数据放在一起;
② 组织数据能力强于元胞数组;
③ 结构体变量和每元素有自己名字;
④ 通过元素名字访问每个元素。
2. 两种定义方法:① 直接赋值定义
② 函数 struct 定义
① 直接赋值
创建格式 结构体变量名 . 成员名 = 表达
式
例 >> x.real=3; 指针操作符“ .” 连结构变量名与属性名
>> x.imag=2;
>> x
访问元素 单下标 或全下标(压缩)
x = real: 3
imag: 2
结构体变量名 . 成员名(具体)
动态扩充为 1*2 数组: 查看两个对象:
例
green_house.name = ' 一号温室 '; % 创建温室名字段
green_house.volume = '2000 立方米 '; % 创建温室容量字段
green_house.parameter.temperature=[31.2 30.4 31.6 28.7;29.7 31.1
30.9 29.6]; % 创建温室温度字段
green_house.parameter.humidity=[62.1 59.5 57.7 61.5; 62.0 61.9 59.2
57.5]; % 创建温室湿度字段
>> green_house
>> green_house.parameter
ans =
green_house = name: ' 一号温室 '
temperature: [2x4 double]
volume: '2000 立方米 '
humidity: [2x4 double]
parameter: [1x1 struct]
② struct 定义结构型变量
结构型变量名 =struct( 元素名 1, 元素值 1, 元素 2, 元素值 2,
…)
person=struct('name','lili','height', 164,'weight',
51,'hobby','game')
例
person =name: 'lili'
height: 51
weight: 164
hobby: 'game'
person =
例 name: 'lili'
height: 51
weight: 164
hobby: 'game'
• 添加
求 dx/dt=y, dy/dt=-x 的解
s=dsolve('Dx=y','Dy=-x','t')
s = x: [1x1 sym]
y: [1x1 sym]
06/29/2022