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. 计算机基础比较偏的题型,计算机基础1多题型期末复习当堂测试卷.doc

    计算机基础1多题型期末复习当堂测试卷 计算机基础1 单项选择 1.完整的计算机系统由( C )组成. A.运算器.控制器.存储器.输入设备和输出设备 B.主机和外部设备 C.硬件系统和软件系统 D.主 ...

  2. matlab 图像 幅度谱 低通滤波_数字图像处理期末复习2018-12-21

    数字图像处理期末复习2018-12-21 愉快先生 0.204 · 字数 5547 · 阅读 1834 2018-12-22 19:35 (数字图像冈萨雷斯第二版教材) 一.基本原理 图像的读取.存储 ...

  3. Python基础知识总结(期末复习精简版)

    文章目录 知识汇总 前言 推荐的学习资料 复习要点 组合数据类型 序列类型通用操作符和函数 集合类型 映射类型 数值操作 运算符 字符串操作 字符串切片 基本切片操作 高级切片操作 操作.相关函数.相 ...

  4. 《量化投资:以MATLAB为工具》连载(1)基础篇-N分钟学会MATLAB(上)

    http://blog.sina.com.cn/s/blog_4cf8aad30102uylf.html <量化投资:以MATLAB为工具>连载(1)基础篇-N分钟学会MATLAB(上) ...

  5. MATLAB学习笔记5:绘图基础与数据可视化(中)

    阅读前请注意: 1. 该学习笔记是华中师范大学HelloWorld程序设计协会2021年寒假MATLAB培训的学习记录,是基于培训课堂内容的总结归纳.拓展阅读.博客内容由 @K2SO4钾 撰写.编辑, ...

  6. comsol与matlab连接使用学习笔记 1 基础设置

    comsol与matlab连接使用学习笔记 1 基础设置 前言 1.安装 COMSOL livlink for Matlab 2.首次运行 前言 以前从来没有用过comsol livelink for ...

  7. 综合能源系统优化调度(冷热电联产)的程序matlab、微网优化调度基础学习 综合能源系统

    综合能源系统优化调度(冷热电联产)的程序matlab.微网优化调度基础学习 综合能源系统 采用多目标粒子群算法,求解优化调度模型. 适合刚入门综合能源研究方向(冷热电联供)并想在前人的基础上进行创新的 ...

  8. 《量化投资:以MATLAB为工具》连载(2)基础篇-N分钟学会MATLAB(中)

    http://www.matlabsky.com/thread-43937-1-1.html <量化投资:以MATLAB为工具>连载(3)基础篇-N分钟学会MATLAB(下) <量化 ...

  9. 《大数据系统基础》实践项目期末答辩顺利举行 校企联手打造精品实践项目见真章

    近期,由清华大学研究生院和数据科学研究院(以下简称:数据院)共同开设的清华大学大数据能力提升项目<大数据系统基础>实践项目期末答辩在清华大学六号教学楼顺利举行.20位企业导师作为评审参与答 ...

最新文章

  1. html增加删除线,HTML如何添加删除线?
  2. Tornado--基于H5图片的上传
  3. ThinkPHP5显示数据库字段内容
  4. seaborn 教程_使用Seaborn进行数据可视化教程
  5. aws lambda_AWS Lambda事件源映射:使您的触发器混乱无序
  6. SEL selector (二)
  7. mysql中什么叫临时表_MySQL中使用临时表需要注意哪些?
  8. IT人员必看的几个网站 http://gzsean.blog.51cto.com
  9. 5G零售行业应用白皮书
  10. Intel 64/x86_64/IA-32/x86处理器 - 指令格式(1) - 概述
  11. 漏洞10年深藏不露,PHP 项目依赖关系管理工具Composer安全吗?
  12. 气象数据源-要素、数据集、空间分辨率、网址
  13. 好工具推荐系列:Feem和Send-anywhere,跨平台局域网传输工具,文件共享工具
  14. 智方8000系房地产进销存管理系统 flash软件下载
  15. 教你利用腾讯云cdn加速网站静态资源
  16. 土方回填施工方案范本_土方回填施工方案.doc.docx
  17. hdu 5064——Find Sequence
  18. 情商高的人所看透的四种人生真相
  19. S4HANA 2020输入会计凭证提示需要输入税码的配置
  20. 论文:并行化 Metropolis-Hastings 算法的一般结构

热门文章

  1. 判断奇偶的c语言程序设计教程课后答案,C语言程序设计实训教程习题和试验解答.doc...
  2. 从互联网汽车到国企改革:砸钱还是自己干?
  3. GMT对应的SimpleDateFormat
  4. 当“性价比”失败时,小米应该如何突破?
  5. android 浏览器打开应用商店,android/iPhone:如何从browser直接打开应用程序或者没有应用程序打开应用商店...
  6. js ajax浏览器做什么,js区分webkit核心浏览器chrome,360浏览器
  7. 映射、散射、漫射、影射
  8. 出国(国际会议)-韩国
  9. Javascript实战——电子钟(时钟、闹钟、计时器、倒计时)
  10. Python Django 基于 Redis做实时排行榜和排名