关于 MATLAB 你首先要会的基础(权且可当做期末复习备考)
MATLAB
Content
- Chapter 1 Introduction to MATLAB
- 1.变量、函数名命名规则
- Chapter 2 Basic Knowledge of Programming
- 1.创建矩阵
- 2.获取矩阵元素
- 3.矩阵的合并
- 4.矩阵的算术运算
- 5.线性代数中的矩阵运算
- 6.字符串的运算
- Chapter 3 MATLAB Numeric Computation
- 1.多项式的创建、求值和求根
- 2.插值的常用方法
- 3.多项式拟合
- 4.数值微分
- 5.数值积分
- Chapter 4 Structure Array and Cell Array
- 1.结构数组的创建
- 2.结构数组的操作
- 3.细胞数组的创建
- 4.细胞数组的操作
- Chapter 5 MATLAB Symbol Computation
- 1.符号变量和表达式的定义
- 2.利用符号运算求极限
- 3.利用符号运算求微分
- 4.利用符号运算求积分
- Chapter 6 Programming with MATLAB
- 1.函数的定义
- 2.选择和循环结构
- 3.输入和输出
- 4.对于给定问题写函数
- Chapter 7 MATLAB Visualization
- 1.二维图形绘制
- 2.三维曲线及曲面的绘制
- Chapter 8 Simulink
- 1.用 Simulink 构建一个仿真系统
- 2.PCM、Sampling、Quantization
Chapter 1 Introduction to MATLAB
1.变量、函数名命名规则
必须以字母开头,可以包含数字、字母、下划线
Chapter 2 Basic Knowledge of Programming
1.创建矩阵
A = [1; 4; 7] % 列矩阵B = [1 4 7] % 行矩阵N = zeros(4) % 全 0 矩阵 4 × 4X = ones(4) % 全 1 矩阵 4 × 4Y = eye(4) % 单位矩阵 4 × 4Z = rand(3,4) % 随机矩阵 3 × 4 (每个数都在 0 到 1 之间)n = [1 3 4 6]D = diag(n) % 生成对角矩阵,结果如下
n =
1 3 4 6
D =
1 0 0 00 3 0 00 0 4 00 0 0 6
2.获取矩阵元素
X(2, 3) % 获取第二行第三列元素
A([1 2], [2 3]) % 获取矩阵 A 的一二行的二三列元素
Y(2, 3) = 3 % 给矩阵第二行第三列的元素赋值为 3
3.矩阵的合并
A = [1 2; 2 1]
B = [2 3; 3 2]
C = [A B] % 行合并
D = [A; B] % 列合并
结果
C =
1 2 2 32 1 3 2
D =
1 22 12 33 2
4.矩阵的算术运算
X = [1 5 -2; 3 0 7]Y = [6 0 6; 2 2 1]Z = X + Y % 加法,对应元素相加A = X - Y % 减B = X.*Y % 乘C = X./Y % 右除 X 的元素除以 Y 的元素D = X.\Y % 左除 Y 的元素除以 X 的元素
加法结果
Z =
7 5 45 2 8
5.线性代数中的矩阵运算
① 矩阵乘
注:第一个矩阵的列数和第二个矩阵的行数必须相同 如下不能计算 Y*X
X = [1 2 3;4 5 6; 6 1 1; 0 1 -3]
Y = [2 -2; 3 8; 7 4]
Z = X*Y
结果
Z =
29 26
65 56
22 0
-18 -4
② 矩阵除
D = A/B % 右除
N = A\B % 左除
除法可以用求除数的逆阵与被除数矩阵相乘的方法替代,学过线性代数都应该知道,不再赘述
③ 矩阵转置
H = [1 2 3; 4 5 6]
G = H' % ' 为求转置符号
结果
G =
1 42 53 6
④ 矩阵求逆
原理 : AB = BA = E
A = [1 0 1; 2 1 2; 0 4 6]
B = inv(A) % B 为 A 的逆阵
结果
B =
-0.3333 0.6667 -0.1667-2.0000 1.0000 01.3333 -0.6667 0.1667
再计算 A*B 得以下结果
1.0000 0 00 1.0000 00 0 1.0000
6.字符串的运算
S1 = 'Go home'
S2 = 'It''s time for dinner' % 注意这句,字符串里面有 ' 的话,要多加一 '
S3 = [S1 '.' S2]
结果
S3 =
'Go home.It's time for dinner'
size(S1) % 结果为 1 7 (结果展示维度)
length(S1) % 结果为 7 (结果展示字符或元素个数
补充 : 冒号运算符 两边有数字代表从左边数字到右边数字的范围,如果只有冒号则代表全部该有的有效范围
findstr(S,‘substring’) 返回字串 ‘substring’ 在 S 中的所有开始位置
Chapter 3 MATLAB Numeric Computation
1.多项式的创建、求值和求根
① 创建
T = [1 3 -15 -2 9]
F = poly2sym(T)
结果
F =
x^4 + 3x^3 - 15x^2 - 2*x + 9
② 求值
polyval(T,0) % 注意 当后面给出的变量是矩阵时,结果也为矩阵% 且调用函数变为 polyvalm(T,X), X为矩阵
ans =
9
③ 求根
p = [1 3 -12 -2 8]
roots (p)
结果
-5.18332.1706-0.83690.8496
2.插值的常用方法
x = 0:10; y = cos(x); % 已知数据点
xi = 0:.25: 10; % 待插入数据点的自变量值
y0 = cos(xi); % 待插入数据点的自变量对应的真实值
y1 = interp1(x,y,xi); % 缺省为线性插值
y2 = interp1(x,y,xi,'PCHIP'); % 三次方程式插值
y3 = interp1(x,y,xi,'spline'); % 三次样条插值
plot(xi, y0, 'go-', xi, y1, 'r*-', xi, y2, 'b-.', xi, y3, 'kv-'); % 图形显示
结果
3.多项式拟合
x = [2 3 4 5 7 8 10 11 14 15 16 18 19];y = [106.42 108.26 109.58 109.5 110 109.93 110.49 110.59 110.6 110.9 110.76 111 111.2];v = polyfit(x, y, 3); % v 是拟合多项式的系数向量,第三个数字代表几次方拟合t = 1:0.5:19; % 待测试数据点,用来画拟合曲线u = polyval(v,t); % 待测试数据点对应的多项式值,用来画拟合曲线plot(t, u, x, y, '*') %图形显示
三次拟合的图像
4.数值微分
A = [2,4,5; -1, 0, 2; 9,3,4];
D = diff(A) % 列后面的数对齐减前面的数
结果
D =
-3 -4 -3
10 3 2
5.数值积分
Question:求 sin(x) 在 [0, pi] 上的数值积分
矩形积分
x = linspace(0,pi,100);y =sin(x);T = cumsum(y)*pi/(100-1);I = T(100)
结果
I =
1.9998
梯形积分
x = linspace(0,pi,100);y =sin(x);t = trapz(x,y)
结果
t =
1.9998
Chapter 4 Structure Array and Cell Array
1.结构数组的创建
>> student.number='20050731001';
>> student.name='Jack';
>> student(2).number='20050731002';
>> student(2).name ='Lucy';
或者用 struct 函数创建。
>> student = struct('number',{ '001', '002'},'name',{ 'Jack', 'Lucy'});
2.结构数组的操作
>> student(1).subject=[] %添加 subject 域并赋予空值
>> student(1).sorce=[]
>> student
>> fieldnames(student)
>> getfield(student,{2},'name')
>> student=rmfield(student, 'subject') %删除 subject 域
>> student=setfield(student,{1},'sorce',90);
>> student(2).sorce=88; %比较和上一条语句是否效果一样
3.细胞数组的创建
>> A={'How are you!',ones(3);[1 2;3 4],{'cell'}}; %直接创建
>> B(1,1)={'Hello world'}; %由各个细胞元素创建
>>> B(1,2)={magic(3)};
>> B(2,1)={[ 1 2 3 4]};
或者用 cell 函数先创建空的细胞数组,然后再给各个元素赋值。
>> C=cell(1,2); %创建 1×2 的细胞数组
>> C(1,1)={'Hello world'};
>> C(1,2)={magic(3)};
>> C(1,3)={[ 1 2 3 4]};
4.细胞数组的操作
>> ans1=A(1,1)
>> ans2=A{1,1} %注意圆括号和花括号的区别,ans1 和 ans2 的数据类型
>> whos ans1 ans2
>> elldisp(A) %显示细胞数组的所有元素
>> a1=A{2,1}(1,2) %取出 A 的第 2 行第 1 列细胞元素的矩阵第 1 行第 2 列内容
>> [a2 a3]=deal(A{1:2}) %取出 A 的第 1 和第 2 个细胞元素的内容赋给 a2、a3
Chapter 5 MATLAB Symbol Computation
1.符号变量和表达式的定义
syms x y % 定义符号变量
y = str2sym('sin(x) + y + cos(x)') % 定义表达式
2.利用符号运算求极限
limit(F, x, a) %返回符号对象 F 当 x→a 时的极限
limit(F, a) %返回符号对象 F 当独立变量*→a 时的极限
limit(F) %返回符号对象 F 当独立变量→0(a=0)时的极限
limit(F, x, a, ’right’) %返回符号对象 F 当 x→a 时的右极限
limit(F, x, a, ’left’) %返回符号对象 F 当 x→a 时的左极限
y = str2sym('sin(x)/x');
limit(y) % x → 0 的极限,结果为 1
3.利用符号运算求微分
diff(F) %求符号对象 F 关于默认变量的微分
diff(F, v) %求符号对象 F 关于指定变量 v 的微分
diff(F, n) %求符号对象 F 关于默认变量的 n 次微分,n 为自然数 1、2、3…
diff(F, v, n) %求符号对象 F 关于指定变量 v 的 n 次微分
y = str2sym('sin(x)')
y1 = diff(y)
结果
y1 =
cos(x)
4.利用符号运算求积分
int(F) %求符号对象 F 关于默认变量的不定积分
int(F, v) %求符号对象 F 关于指定变量 v 的不定积分
int(F, a, b) %求符号对象 F 关于默认变量的从 a 到 b 的定积分
int(F, v, a, b) %求符号对象 F 关于指定变量 v 的从 a 到 b 的定积分
y = str2sym('sin(x)');
D = int(y,0,pi) % 定积分
结果
D =
2
Chapter 6 Programming with MATLAB
1.函数的定义
以下是有效的函数定义方式
2.选择和循环结构
选择
if
...
else
...
endswitch 变量
case 变量取值
...
case 变量取值
...
end
循环
for n = 1 : 10
...
endfor n = 10 : -1: 5 % 很好理解
...
endwhile i < 100 % 判断语句
...
end
3.输入和输出
input('请输入:') % 输入
fprintf('结果是:%s\n',str) %输出
4.对于给定问题写函数
一个棋盘,从第一个格子开始,第一个格子放一粒米,依次放后面的格子,后一格的数量为前一格的两倍,求一共需要多少粒米?
function sum = func
i = 1;
sum = 0;
while i <= 64sum = sum + 2^i;i = i + 1;
end
Chapter 7 MATLAB Visualization
1.二维图形绘制
1.plot
x = [-2*pi:0.1:2*pi];
y1 = sin(x); y2 = cos(x);
plot(x, y1, 'g-*', x, y2, 'r-+');
xlabel('x'); ylabel('sin(x)&cos(x)')
hl = legend('sin(x)', 'cos(x)');
set(hl, 'Orientation', 'vertical');
grid on;
运行结果
2.hist
attri = rand(1,100)*99+1;
hist(attri,10);
xlabel('random number');
ylabel('Count');
运行结果
3.pie
consumption = [589, 200, 654, 245];
explode = [0,0,0,0];
labels = {'1st quarter ', '2nd quarter', '3rd quarter', '4th quarter'};
pie(consumption, explode, labels);
运行结果
4.subplot
subplot(2,2,1); % 在一个界面里的四分之一的第一个区域画图
plot(x,sin(x));
xlabel('x');
ylabel('y');
title('sin(x)');
运行结果
2.三维曲线及曲面的绘制
1.plot3
t = 0:0.05:20;
x = sin(t); y = cos(t);
plot3(x,y,t,'*'); // plot3 画曲线
grid
text(0,0,0,'0');
title('Three dimension');
xlabel('sin(t)'),ylabel('cos(t)'),zlabel('t');
运行结果
2.meshgrid 和 surf
[X,Y] = meshgrid(1:0.5:10,1:20);
Z = sin(X) + cos(Y);
surf(X,Y,Z);
xlabel('x'), ylabel('y'), zlabel('z');
title('SURF')
运行结果:
Chapter 8 Simulink
1.用 Simulink 构建一个仿真系统
输入以下信号
y = 2sin(2x) + 0.5
仿真结果
2.PCM、Sampling、Quantization
1.脉冲编码调制(PCM)
2.抽样(Sampling)
3.量化(Quantization)
量化(Quantization),利用预先规定的有限个电平来表示模拟抽样值的过程称为量化。
4.编码(coding)
关于 MATLAB 你首先要会的基础(权且可当做期末复习备考)相关推荐
- 计算机基础比较偏的题型,计算机基础1多题型期末复习当堂测试卷.doc
计算机基础1多题型期末复习当堂测试卷 计算机基础1 单项选择 1.完整的计算机系统由( C )组成. A.运算器.控制器.存储器.输入设备和输出设备 B.主机和外部设备 C.硬件系统和软件系统 D.主 ...
- matlab 图像 幅度谱 低通滤波_数字图像处理期末复习2018-12-21
数字图像处理期末复习2018-12-21 愉快先生 0.204 · 字数 5547 · 阅读 1834 2018-12-22 19:35 (数字图像冈萨雷斯第二版教材) 一.基本原理 图像的读取.存储 ...
- Python基础知识总结(期末复习精简版)
文章目录 知识汇总 前言 推荐的学习资料 复习要点 组合数据类型 序列类型通用操作符和函数 集合类型 映射类型 数值操作 运算符 字符串操作 字符串切片 基本切片操作 高级切片操作 操作.相关函数.相 ...
- 《量化投资:以MATLAB为工具》连载(1)基础篇-N分钟学会MATLAB(上)
http://blog.sina.com.cn/s/blog_4cf8aad30102uylf.html <量化投资:以MATLAB为工具>连载(1)基础篇-N分钟学会MATLAB(上) ...
- MATLAB学习笔记5:绘图基础与数据可视化(中)
阅读前请注意: 1. 该学习笔记是华中师范大学HelloWorld程序设计协会2021年寒假MATLAB培训的学习记录,是基于培训课堂内容的总结归纳.拓展阅读.博客内容由 @K2SO4钾 撰写.编辑, ...
- comsol与matlab连接使用学习笔记 1 基础设置
comsol与matlab连接使用学习笔记 1 基础设置 前言 1.安装 COMSOL livlink for Matlab 2.首次运行 前言 以前从来没有用过comsol livelink for ...
- 综合能源系统优化调度(冷热电联产)的程序matlab、微网优化调度基础学习 综合能源系统
综合能源系统优化调度(冷热电联产)的程序matlab.微网优化调度基础学习 综合能源系统 采用多目标粒子群算法,求解优化调度模型. 适合刚入门综合能源研究方向(冷热电联供)并想在前人的基础上进行创新的 ...
- 《量化投资:以MATLAB为工具》连载(2)基础篇-N分钟学会MATLAB(中)
http://www.matlabsky.com/thread-43937-1-1.html <量化投资:以MATLAB为工具>连载(3)基础篇-N分钟学会MATLAB(下) <量化 ...
- 《大数据系统基础》实践项目期末答辩顺利举行 校企联手打造精品实践项目见真章
近期,由清华大学研究生院和数据科学研究院(以下简称:数据院)共同开设的清华大学大数据能力提升项目<大数据系统基础>实践项目期末答辩在清华大学六号教学楼顺利举行.20位企业导师作为评审参与答 ...
最新文章
- html增加删除线,HTML如何添加删除线?
- Tornado--基于H5图片的上传
- ThinkPHP5显示数据库字段内容
- seaborn 教程_使用Seaborn进行数据可视化教程
- aws lambda_AWS Lambda事件源映射:使您的触发器混乱无序
- SEL selector (二)
- mysql中什么叫临时表_MySQL中使用临时表需要注意哪些?
- IT人员必看的几个网站 http://gzsean.blog.51cto.com
- 5G零售行业应用白皮书
- Intel 64/x86_64/IA-32/x86处理器 - 指令格式(1) - 概述
- 漏洞10年深藏不露,PHP 项目依赖关系管理工具Composer安全吗?
- 气象数据源-要素、数据集、空间分辨率、网址
- 好工具推荐系列:Feem和Send-anywhere,跨平台局域网传输工具,文件共享工具
- 智方8000系房地产进销存管理系统 flash软件下载
- 教你利用腾讯云cdn加速网站静态资源
- 土方回填施工方案范本_土方回填施工方案.doc.docx
- hdu 5064——Find Sequence
- 情商高的人所看透的四种人生真相
- S4HANA 2020输入会计凭证提示需要输入税码的配置
- 论文:并行化 Metropolis-Hastings 算法的一般结构
热门文章
- 判断奇偶的c语言程序设计教程课后答案,C语言程序设计实训教程习题和试验解答.doc...
- 从互联网汽车到国企改革:砸钱还是自己干?
- GMT对应的SimpleDateFormat
- 当“性价比”失败时,小米应该如何突破?
- android 浏览器打开应用商店,android/iPhone:如何从browser直接打开应用程序或者没有应用程序打开应用商店...
- js ajax浏览器做什么,js区分webkit核心浏览器chrome,360浏览器
- 映射、散射、漫射、影射
- 出国(国际会议)-韩国
- Javascript实战——电子钟(时钟、闹钟、计时器、倒计时)
- Python Django 基于 Redis做实时排行榜和排名