完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547

第3章   Matlab简易使用之基础操作

本期教程开始讲解Matlab的简易使用之基础操作,作为学习DSP的必备软件,掌握简单的Matlab操作是必须的。

目录

第3章   Matlab简易使用之基础操作

3.1   初学者重要提示

3.2   Matlab界面说明

3.2.1  简单计算

3.2.2  稍复杂计算

3.2.3  历史命令行调用

3.3   Matlab矩阵和阵列

3.3.1  创建数组

3.3.2  矩阵和阵列运算

3.3.3  矩阵的合并

3.3.4  复数

3.4   Matlab检索矩阵中的数据

3.5   Matlab工作区中的数据保存和加载

3.6   Matlab字符串

3.7   Matlab函数

3.8   Matlab绘图功能

3.8.1  画线

3.8.2  3-D绘图

3.8.3  多个子图的绘制

3.9   总结


3.1   初学者重要提示

  1. 本章主要介绍了matlab的基础操作,如果之前没有接触过这方面的知识,务必要实际动手操作。

3.2   Matlab界面说明

  • 当前文件夹(Current  Folder)

用于访问电脑中的文件。

  • 命令窗口(Command Window)

用于输入命令,公式计算等也可以在这里进行。

  • 工作区(Workspace)

浏览用户创建的数据或者从文件中导入的数据。

  • 命令历史记录(Command History)

记录用户在command窗口输入的命令,双击这些历史命令可以返回到command窗口继续执行。

下面通过简单的例子说明一下command窗口的使用。

3.2.1  简单计算

在command窗口输入变量a =1,然后回车,再次输入a,然后回车。

第一次输入a = 1并回车后会将变量a及其数值加入到工作区(Workspace)中。

第二次输入a 并回车后会将变量a以前的赋值显示出来。

3.2.2  稍复杂计算

在command窗口输入以下计算:

注意:上面输入一行后加入了分号,这个分号很重要,加上分号后再回车就可以输入下个计算,否则会输出计算结果。在需要获得结算结果的时候,就不再需要这个分号了,直接回车即可。

如果没有结果变量的话,输出会是ans = xxx(使用ans作为输出变量) 。

3.2.3  历史命令行调用

历史命令行的调用除了可以在右下角的Command里面调用以外,还可以通过键盘上面的按键↑ 和 ↓实现历史命令的查询。

3.3   Matlab矩阵和阵列

Matlab的主要设计是对整个矩阵和数组操作。不管什么类型的数据,所有MATLAB的变量是多维数组。矩阵是一个二维阵列通常用于线性代数。

3.3.1  创建数组

下面在matlab中创建一个一行四列的数组,数组中的每个元素用逗号或者空格分开。比如创建数组

这种类型的数组也称为行向量。

下面创建一个多行的矩阵,不同的行用分号隔开:

当然,也可以使用Matlab自带的函数进行创建,比如ones,zeros,rand等。

3.3.2  矩阵和阵列运算

MATLAB允许客户使用一个单一的算术运算符或函数来处理所有在矩阵中的值。比如:

下面继续说一下matlab矩阵的转置,求逆矩阵。

  1. 给矩阵a加上符号a'用于求转置矩阵。
  2. inv()用于求逆矩阵。
  3. 矩阵a乘以a的逆矩阵就是求单位矩阵。

注意上面的a*inv(a)得到的结果已经不再是整数矩阵,Matlab存储结果的时候会以浮点的形式进行存储,Matlab实际存储的数值和当前命令窗口显示的数值是有区别的。为了获得更高的显示精度可以使用下面的数据格式

执行逐个元素乘法,而不是矩阵的乘法可以使用符号 .* 来实现:

>> a.*a
ans =1     4     916    25    3649    64   100

下面是实现矩阵各个元素的3次方

>> a.*a
ans =1     4     916    25    3649    64   100

3.3.3  矩阵的合并

矩阵的合并主要有以下两种形式:

>>A = [a,a]
A =1     2     3     1     2     34     5     6     4     5     67     8    10     7     8    10>>A = [a; a]
A =1     2     34     5     67     8    101     2     34     5     67     8    10

3.3.4  复数

复数的表示是由实部和虚部组成的,比如我们在matlab命令窗口输入:

>>sqrt(-1)
ans =0 + 1.0000i

为了表示复数的虚部,可以使用i或者j来表示:

>>c = [3+4i,  4+3j,  -i,  10j]
c =3.0000 + 4.0000i   4.0000 + 3.0000i   0 - 1.0000i   0 +10.0000i

3.4   Matlab检索矩阵中的数据

有时矩阵中的元素比较多,为了方便用户可以检索矩阵中所需要查找的元素,调用相关命令即可。比如:先用magic函数生成4阶幻方矩阵:

>>A = magic(4)
A =16     2     3    135    11    10     89     7     6    124    14    15     1
  • 如果我们要获得第4行第2列的数据(注意,行列从1开始算的),可以采用如下的方法:
>>A(4,2)
ans =
14
  • 简单点,也可以使用如下方法进行定位:
>>A(8)
ans =14
  • 如果检索超出了矩阵的范围,会报错,如下:
>> test = A(4,5)
Attempted to access A(4,5); index out of bounds because size(A)=[4,4].
  • 用户可以通过如下方法增加行和列
>> A(5,5) = 14
A =16     2     3    13     05    11    10     8     09     7     6    12     04    14    15     1     00     0     0     0    14
  • 用户可以通过如下方法访问某行某列的某些数据
>> A(1:3,2)
ans =
2
11
7
>> A(3,:)
ans =9     7     6    12     0
  • 使用冒号运算符,用户可以获得一个等间距序列,冒号隔开的数值分别表示start:step:end
start:step:end
>> B = 0:10:100
B =Columns 1 through 100    10    20    30    40    50    60    70    80    90Column 11100

如果不设置step,那么输出结果默认步是1。

3.5   Matlab工作区中的数据保存和加载

工作区中的变量来自用户创建,外部数据加载或者其它的编程加入。比如我们在命令窗户输入以下两个函数。

>> A = magic(4);
B = rand(3,5,2);

通过命令whos可以查看工作区中的变量内容。

>> whosName      Size             Bytes  Class     AttributesA         4x4                128  double              B         3x5x2              240  double

工作区中的变量如下,和通过命令whos查看的效果是一样的。

如果用户退出Matlab后,再次进入工作区中,那么里面的数据变量将被清空。如果想保持这些变量可以

通过如下命令进行保存:

>> save myfile.mat

下次打开MATLAB可以通过如下命令加载这些变量:

>>load myfile.mat

另外用户可以通过命令clear清除当前工作区中的变量。

3.6   Matlab字符串

  • 在matlab中显示字符串跟使用C不一样,matlab中使用单引号即可。比如:
>> myText = 'Hello, world'
myText =
Hello, world>> otherText = 'You''re right'   %特别的注意这里,显示单引号需要写两个才可以。
otherText =
You're right>> whosName           Size            Bytes  Class    AttributesmyText         1x12               24  char               otherText      1x12               24  char   
  • 如果想合并两个字符串可以用如下的方法:
>> longText = [myText,' - ',otherText]
longText =
Hello, world - You're right
  • 如果想把数字转换成字符串显示,可以用函数num2str 或者int2str.
>> f = 71;
c = (f-32)/1.8;
tempText = ['Temperature is ',num2str(c),'C']
tempText =
Temperature is 21.6667C

3.7   Matlab函数

MATLAB支持的函数非常多,下面举一个简单的例子说明下,后面具体用到那个函数查阅手册即可。

>> A = [1 3 5];
B = [10 6 4];
>> max(A)           %求最大值
ans =5>> max(A,B)         %求A,B中的最大值
ans =10     6     5>> maxA = max(A)   %将最大值付给maxA
maxA =5>> [maxA,location] = max(A)   %将最大值和次最大值赋给两个变量
maxA =5
location =3
  • 显示任何字符串可以调用函数:
>> disp('hello armfly')hello armfly
  • 命令窗口数据的清除可以使用命令
>>clc

3.8   Matlab绘图功能

Matlab的绘图功能非常强劲,下面分别简单介绍下。

3.8.1  画线

下面使用绘图功能创建一个二维图:

>> x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)

通过如下函数可以给绘图加上标题:

>> x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y);
xlabel('x');
ylabel('sin(x)');
title('Plot of the Sine Function')

通过函数plot(x,y,'r--')可以改变曲线的颜色和显示方式。

如果想把两个波形显示在一个图中,可以采用函数hold on,如下所示:

>> x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)hold ony2 = cos(x);
plot(x,y2,'r:')
legend('sin','cos')

3.8.2  3-D绘图

Matlab也支持3-D绘图,下面举一个简单的例子,主要是为了说明显示效果:

>>  [X,Y] = meshgrid(-2:.2:2);
Z = X .* exp(-X.^2 - Y.^2);
surf(X,Y,Z)

3.8.3  多个子图的绘制

Matlab也支持在一幅图中绘制多个子图片,主要是通过函数subplot实现:

>> t = 0:pi/10:2*pi;
[X,Y,Z] = cylinder(4*cos(t));
subplot(2,2,1); mesh(X); title('X');
subplot(2,2,2); mesh(Y); title('Y');
subplot(2,2,3); mesh(Z); title('Z');
subplot(2,2,4); mesh(X,Y,Z); title('X,Y,Z');

3.9   总结

本期主要跟大家讲解了Matlab的简单使用方法,后面复杂的使用需要大家多查手册,多练习。

【STM32H7的DSP教程】第3章 Matlab简易使用之基础操作相关推荐

  1. 【STM32F407的DSP教程】第3章 Matlab简易使用之基础操作

    完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第3章   Matlab简易使用之基础操作 本期教程开始讲解 ...

  2. 【STM32F429的DSP教程】第3章 Matlab简易使用之基础操作

    完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第3章   Matlab简易使用之基础操作 本期教程开始讲解 ...

  3. 【STM32H7的DSP教程】第38章 STM32H7的FIR高通滤波器实现(支持逐个数据的实时滤波)

    完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第38章       STM32H7的FIR高通滤波器实现( ...

  4. matlab 2009a使用教程,实验一 安装MATLAB R2009a软件及其简单操作

    实验一安装MATLAB R2009a软件及其简单操作 一.实验目的 1.掌握MATLAB R2009a软件的安装. 2.熟悉启动和退出matlab的方法. 3.熟悉matlab命令窗口的组成. 4.掌 ...

  5. 【Matlab 图像】图像基础操作

    图像基础操作 读取图片 读取视频 读取图片 % 读取图像 Img = imread('test2.png'); subplot(2,2,1); imshow(Img); title('原图(RGB图) ...

  6. axure操作回复_Axure8.0基础教程(31-40)新手必须掌握的基础操作

    新手必须掌握的Axure基础操作,初学者应在掌握本篇内容后再进行实战案例篇的学习,以免产生学习障碍.同时,建议具备一定基础的读者学习本篇中相对生疏的内容,并加以掌握.本文转载自小楼老师博客:http: ...

  7. 【STM32H7的DSP教程】第32章 STM32H7的实数FFT的逆变换(支持单精度和双精度)

    完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第32章       STM32H7的实数FFT的逆变换(支 ...

  8. 【STM32H7的DSP教程】第50章 STM32H7的样条插补实现,波形拟合丝滑顺畅

    完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第50章       STM32H7的样条插补实现,波形拟合 ...

  9. 【STM32H7的DSP教程】第11章 DSP基础函数-绝对值,求和,乘法和点乘

    完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第11章       DSP基础函数-绝对值,求和,乘法和点 ...

  10. matlab 判断两个矩阵有元素相等_Matlab入门教程 第 1 章 Matlab基础知识之基本运算...

    1.6 Matlab 基本运算 Matlab 包含三种运算:算术运算.关系运算和逻辑运算. 1.6.1 算术运算 ① 基本算术运算 基本算术运算符:+.-.*./(右除).\(左除).^(乘方) ? ...

最新文章

  1. ADMT3.2迁移域用户
  2. monocross 环境搭建:MonoTouch Mono for Android
  3. Java 多态中成员变量与成员属性的特点【复习】
  4. 《系统集成项目管理工程师》必背100个知识点-13项目经理是整合者
  5. android h5 书,android与H5交互
  6. java方法重载_Java方法的重载
  7. Java 运算符及优先级
  8. excel教程自学网_想学习PS和视频剪辑,自学,有哪些好的学习网站和资源吗?
  9. linux find 命令使用注意
  10. windbg调试HEAP
  11. ZZULIOJ 1105: 判断友好数对(函数专题)
  12. SAM4E单片机之旅——22、GMAC和PHY的介绍与初始化
  13. canvas压缩图片成base64,传到后台解码需要注意的问题
  14. gfsk调制频谱_gfsk调制方式
  15. 三自由度机械臂的三维设计
  16. 语音识别工具Sphinx4
  17. ThinkPad L13笔记本怎么U盘重装系统教学
  18. 电脑能正常上网,但是显示无Internet
  19. Python学习(3)计算个人所得税
  20. 如何设置Ubuntu 自动待机时间

热门文章

  1. 基于SSM的图书借阅管理系统的分析与设计(源码+文档+PPT)
  2. 解决虚拟机桥接模式无法上网的问题
  3. 北京54坐标系和1980西安坐标系转换
  4. html 设置origin,background-origin属性怎么用
  5. 采集抖音APP的10个经典方法
  6. 四川行无疆电商讲解拼多多电商产品销量如何清零
  7. 表情商店竞争加剧,陌陌和微信的“另一桩”生意
  8. 使用IDEA反编译class文件
  9. Ubuntu 20.04 双系统安装过程(新手)
  10. 常用html标签及其属性