信号与系统实验序章0——MATLAB基础命令入门

时间:2022-08-29 23:23:03

本次开启新的系列,关于用Matlab实现常见信号和函数的生成和变换。

同时如果没有MATLAB基础,那么可以跟着本文一步一步学习Matlab的相关操作,本文旨在记录在信号与系统课程中MATLAB的学习过程,欢迎大家指出错误和补充!

本章为信号与系统实验序章,MATLAB的简单入门,本文没有特别的难点,较难的地方在本文都有较详细的说明,请放心食用!

有空可以来看看我的个人博客:http://shadowl.top/

下面开启正文


一.MATLAB相关简介和安装。

(一)MATLAB简介。

1.What is MATLAB ?

MATLAB(矩阵实验室) 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

2.Why is it called MATLAB ?

MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

3.MATLAB主要提供以下功能:

  • 可用于技术计算的高级语言
  • 可对代码、文件和数据进行管理的开发环境
  • 可以按迭代的方式探查、设计及求解问题的交互式工具
  • 可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等的数学函数
  • 可用于可视化数据的二维和三维图形函数
  • 可用于构建自定义的图形用户界面的各种工具
  • 可将基于MATLAB的算法与外部应用程序和语言(如C、C++、Fortran、Java、COM以及Microsoft Excel)集成的各种函数

以上就是MATLAB的大概介绍,总的来说就是这个软件是为了数值分析和矩阵计算而被广泛运用,当然MATLAB如今的功能已经十分的强大,软件的从当初1M左右也变为现在的十几接近二十个G,MATLAB也成为了三大数学软件之一,在各个领域都有广泛的应用。

无论你是出于什么目的来学习MATLAB,我们都应该细致的开始,深入的进行。

下面开始MATLAB的学习过程吧!

(二)Matlab的安装

1.正规途径

软件官网:https://ww2.mathworks.cn/products/matlab.html

信号与系统实验序章0——MATLAB基础命令入门

下面为官网的最新报价

信号与系统实验序章0——MATLAB基础命令入门

MATLAB正版的价格十分昂贵,如果大家能够支付得起,直接下载官网上的文件按步骤安装就好。

2.非正规途径

非正规途径MATLAB的安装方式在网络上有很多,大家跟着网络上的教程就可以实现完整的安装。

如果是个人的使用的话,不涉及商用,那么我们不用去在意途径的正规与否,但如果条件允许的话,尽量使用正版软件。

在安装方面,我们不费太多篇幅:

分享一个很详细的MATLAB获取和安装教程链接:https://mp.weixin.qq.com/s/ky6vCBJrj4q-qlgf7CT5gg

二.MATLAB简单使用教学。

(一)使用命令行。

安装成功后,显示的页面应如下

信号与系统实验序章0——MATLAB基础命令入门

页面相当简洁,命令行区域是我们主要操作的区域,MATLAB主要是靠命令的输入完成相应的工作;而旁边的工作区是我们用来观察我们创建的一些变量和函数的工作情况,我们创建的变量在创建成功后会在工作区有相应的显示。

而在左上角有一个新建脚本,如果你是有丰富的编程经验的程序员,那么脚本的方式可能更和你的胃口,如果你不了解脚本,那也无妨,开始的操作并不需要脚本和函数的建立,熟悉命令行的操作就可以完成很多的工作,在后面的信号与系统的实验中当我们用到脚本和函数的建立时,我们自然会记录下如何使用它。

1.简单的命令。

下面我们介绍一些简单的命令:

(1)退出和中断


exit,quit       % 结束MATLAB会话。程序完成,如果没有明确保存,则变量中的数据消失

Ctrl-c          % 中断一个MATLAB任务,但会话并没有结束

 其实这两个命令用处不是很大,大部分时间我们用不上它

MATLAB命令中会有一些特殊的功能键,恢复指令、删除字符等过于基础,这里不再写出。

(2)清除和清屏。

clc             % 清屏,清除命令行区的内容

clear           % 清除工作区

  

(3)多维矩阵的建立。

MATLAB的中文名为矩阵实验室,它的数据的基本格式就是矩阵。

科普一下矩阵:在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合 ,最早来自于方程组的系数及常数所构成的方阵。

如果你是一个科幻影迷的话,对Matrix这个单词应该并不陌生。

信号与系统实验序章0——MATLAB基础命令入门

我也想像Neo一样在网络空间里上天入地!

二维矩阵是一个带有以行和列排列的元素的矩形表。如果有m行、n列,这个矩阵的大小就是m×n。多维矩阵的维数大于二,就是说其大小为m×n×......×p。

矩阵这方面的知识我们不去详细解释,学过线性代数的话对矩阵应该是十分熟悉。

a.标量的指定,如果写入x=7,则在屏幕打印为:

>> x=7

x =

     7

b.如果仅写入7,则结果变为:

>> 7

ans =

     7

  c.2×3维情况下一个矩阵的定义可以逐行给出元素:

>> A=[1 2 3
4 5 6] A = 1 2 3
4 5 6

  

d.也可以在同一行用分号来分隔行以给出所有的元素(**常用**):

>> A=[ 1 2 3; 4 5 6]  %构建一个2×3的矩阵

A =

     1     2     3
4 5 6

在命令后加一个分号可以禁止打印出结果。

e.一个行向量和一个列向量的定义:

>> rowvec=[1.2 3.2 4] 

rowvec =

    1.2000    3.2000    4.0000

>> colvec=[2.7;3.4;-9.2]  %用分号隔开

colvec =

    2.7000
3.4000
-9.2000

  f.若想显示一个变量的值,输入它的名字即可:

>> A

A =

     1     2     3
4 5 6

  创建过的变量并没有消失,可以在工作区查看它的状态:

信号与系统实验序章0——MATLAB基础命令入门

g.也可以逐个地分配元素:

>> B(1,1)=1;
>> B(1,2)=7;
>> B(2,1)=-5;
>> B(2,2)=0 B = 1 7
-5 0

h.通过间距来创建矩阵:

例如想创建一个公差为1的首项为0,末项为10的数列:

>> C=[0 : 1 : 10]

C =

     0     1     2     3     4     5     6     7     8     9    10

  通过 变量名=[首项 : 公差 :末项] 便可以方便的创造数列,这个方式也是MATLAB模拟连续函数的方式,在后面的信号函数绘制中,我们会大量的用到它。

(3)算数表达式和数学函数。

a.矩阵的简单运算。

在MATLAB中通常的惯例是书写数字。对十进制数,使用科学计数法可以十分大和十分小的数。例如3.14和1.23E-6,这里,后者代表1.23×10-6

MATLAB有算数运算符的扩展集,它们是:

1)^                幂

2)*                乘

/                右除(正常除)

\                左除

3)+               加

-                减

这是按顺序给出的运算,1是最高优先级。在带相同优先级的运算符表达式中,按从左到右的顺序执行。圆括号()能够用于改变优先级次序。

在算术运算符前加 . 表示元素之间的计算,与矩阵的运算不同,如:.* 表示点乘,./表示点除,需要特别注意。

b.MATLAB中常用的预定义变量:

pi               %返回Π,即3.141592653589793,只是一个近似值
inf %定义为1/0。当出现被零除时,MATLAB就返回inf,并不中断执行而继续计算。
NaN %定义为“Not a Number”,表示非数值,可能是inf/inf。
i,j %定义为√-1,虚数单位。

  

c.MATLAB常用的数学函数:

sqrt(x)                %开平方 
real(z) %复数z的实部
imag(z) %复数z的虚部
conj(z) %复数z的共轭复数
round(x) %四舍五入至最近整数
fix(x) %无论正负,舍去小数至最近整数 rem(x,y) %求x除以y的余数

gcd(x,y) %整数x和y的最大公因数
lcm(x,y) %整数x和y的最小公倍数
exp(x) %自然指数
pow2(x) %2的指数
log(x) %以e为底的对数
log2(x) %以2为底的对数
log10(x) %以10为底的对数

  常用的三角函数:

sin(x)                 %正弦函数 
cos(x) %余弦函数
tan(x) %正切函数
asin(x) %反正弦函数
acos(x) %反余弦函数
atan(x) %反正切函数

  用于向量的常用函数有:

min(x)                 %向量x的元素的最小值 
max(x) %向量x的元素的最大值
mean(x) %向量x的元素的平均值
median(x) %向量x的元素的中位数
std(x) %向量x的元素的标准差
diff(x) %向量x的相邻元素的差
sort(x) %对向量x的元素进行排序
length(x) %向量x的元素个数
norm(x) %向量x的欧氏长度
sum(x) %向量x的元素总和
prod(x) %向量x的元素总乘积
cumsum(x) %向量x的累计元素总和
cumprod(x) %向量x的累计元素总乘积

  

关于矩阵的运算和性质,可参考线性代数的知识,这里不加说明。


基本的MATLAB的命令大部分都在上面,还有一些函数我们在之后的篇章中会边学边用,希望对大家有帮助。

MATLAB慕课推荐:https://www.coursera.org/learn/matlab/home/welcome

之后的实验一部分题目来自于这个课程的课后习题

有时间强烈推荐学习此课程

有空可以来看看我的个人博客:http://shadowl.top/

信号与系统实验序章0——MATLAB基础命令入门的更多相关文章

  1. MATLAB信号与系统分析(四)——离散信号与系统的复频域分析及MATLAB实现

    一.系统的z变换和反变换 1.利用部分分式展开求解逆Z变换: 2.例子 3.Z变换的MATLAB函数 clear all f=sym('cos(a*k)'); F=ztrans(f) F=sym('z ...

  2. 信号、系统与滤波器设计(matlab)

    0. 基本概念 AWG:Additive White(zero-mean) Gaussian,可加白噪声: AWGN:Additive White(zero-mean) Gaussian Noise ...

  3. 嵌入式Linux学习笔记(0)基础命令。——Arvin

    学习记录: 到今天为止ARM裸机开发学习进程:1.2.1-1.2.14 预科班知识Linux介绍学习进程:0.2.1-0.2.6 学习内容笔记: 学习了Linux的开发方式的优劣介绍 学习了常用文件夹 ...

  4. 2018美赛准备之路——Matlab基础——命令行功能函数

    clc 清屏(只清除显示内容) clear  清除所有变量(运算结果) who  显示workspace的所有变量 whos  详细显示workspace的所有变量  help sin 显示sin函数 ...

  5. 数字图像处理学习笔记之一 DIP绪论与MATLAB基础

    写在前面的话 数字图像处理系列的学习笔记是作者结合上海大学计算机学院<数字图像处理>课程的学习所做的笔记,使用参考书籍为<冈萨雷斯数字图像处理(第二版)(MATLAB版)>,同 ...

  6. 【转载】Gradle学习 第十一章:使用Gradle命令行

    转载地址:http://ask.android-studio.org/?/article/94 This chapter introduces the basics of the Gradle com ...

  7. MATLAB信号与系统分析(一)&mdash&semi;&mdash&semi;连续时间信号与系统的时域分析

    一.连续时间信号的表示: 1.向量表示法: 在MATLAB中,是用连续信号在等时间间隔点的样值来近似表示连续信号,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号. 对于连续时间信号f( ...

  8. MATLAB—信号与系统中的应用

    文章目录 一. 理论知识 1.线性系统的响应 2.微分方程的解 Ⅰ.经典解 Ⅱ.完全响应 3.零输入响应 4.零状态响应 5.冲激响应 6.阶跃响应 7.卷积求零状态响应 二.连续信号的MATLAB描 ...

  9. MATLAB信号与系统分析(三)&mdash&semi;&mdash&semi;连续信号与系统的复频域分析及MATLAB实现

    一.系统的拉普拉斯变换和反变换 1.MATLAB函数 F=laplace(f) %求拉氏变换 f=ilaplace(F) %求拉氏反变换 2.例子 clear all;clc;close all f= ...

随机推荐

  1. 前端MVVM框架设计及实现(二)

    在前端MVVM框架设计及实现(一)中有一个博友提出一个看法: “html中使用mvvm徒增开发成本” 我想这位朋友要表达的意思应该是HTML定义了大量的语法标记,HTML中放入了太多的逻辑,从而增加了 ...

  2. Codeforces Round &num;237 &lpar;Div&period; 2&rpar; A

    链接:http://codeforces.com/contest/404/problem/A A. Valera and X time limit per test 1 second memory l ...

  3. ASP&period;NET MVC中的错误-友好的处理方法

    转自:http://blog.csdn.net/lizhao1226/article/details/6367400 “/”应用程序中的服务器错误. 无法找到资源. 说明: HTTP 404.您正在查 ...

  4. phpmyadmin万能密码

    影响版本:2.11.3 / 2.11.4 利用方法:用户名处写入‘localhost’@'@”则登录成功. (注意全部是英文标点符号,最后一个为英文双引号)

  5. hadoop下载

    1.输入网址: http://mirrors.cnnic.cn/apache/hadoop/common/ 2.选择需要的版本进行点击下载

  6. AngularJS语法基础及数据绑定——详解各种数据绑定指令、属性应用

    AngularJS简单易学,但是功能强大.特别是在构建单页面应用方面效果显著.而 数据绑定 可以说是他被广泛使用的最主要的优点.他舍弃了对DOM的操作方式,一切都由AngularJS来自动更新视图,我 ...

  7. 微信小程序电商实战(-)商城首页

    首先在app.json中配置页面和底部tabbar { "pages":[ "pages/index/index", "pages/kind/kind ...

  8. MySQL高可用架构-MMM环境部署记录

    MMM介绍MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序.MMM使用Perl语言开发,主要用来监控和管理 ...

  9. 算法笔记&lowbar;230&colon;运动员分组&lpar;Java&rpar;

    目录 1 问题描述 2 解决方案   1 问题描述 有N个人参加100米短跑比赛.跑道为8条.程序的任务是按照尽量使每组的人数相差最少的原则分组.例如:N=8时,分成1组即可.N=9时,分成2组:一组 ...

  10. 软件工程项目组Z&period;XML会议记录 2013&sol;11&sol;27

    软件工程项目组Z.XML会议记录 [例会时间]2013年11月27日星期三21:00-22:00 [例会形式]小组讨论 [例会地点]学生公寓3号楼会客厅 [例会主持]罗凡 [会议记录]罗凡 会议整体流 ...