matlab学习001-简单的矩阵输入运算及绘制信号曲线

目录

1,熟悉简单的矩阵输入

1.1,创建矩阵

1.2,在命令行调用文件中的变量

1.3,ones函数

1.4,who和whos的使用

2,绘制信号曲线 

2.1,实指数信号 

2.2,频率为50Hz的周期方波信号

2.3,信号卷积 *

2.4,产生从-4π到4π的Sa(t)函数

2.5,单位阶跃信号u(t)

2.6,g(t)=u(t)-u(t-1)

2.7,单位冲激信号δ(t)

1)stem函数

2.8,u(n-3)

2.9  冲击序列δ(n)

3,矩阵运算

1)A+5*B和A-B+I分别为多少?

①A+5*B

②A-B+I

2)A.*B

3)A*B

4)A.^B

5)A./B

6)A.\B


1,熟悉简单的矩阵输入

1.1,创建矩阵

在命令窗口输入矩阵A=[123;456;789]或A=[1,2,3;4,5,6;7,8,9]观察输出结果。

  

观察结果,可知:

经观察可以发现,在创建矩阵的时候如果不在每列数字中间加上逗号或者是空格,那么每一列都会很紧凑的挨在一起。如果不想要使用逗号的话,可以直接使用空格键,让每列分开。

用回车代替矩阵里面的分号,观察输出结果。

观察结果,可知:

输出依旧能够实现矩阵的样式,且更加方便,不用写分号。唯一不足就是定义矩阵的时候占用的行过多,不利于观察。我还是比较喜欢使用分号来分开每一行。

1.2,在命令行调用文件中的变量

选择Filenew菜单中的M-file,输入B=[9,8,7;6,5,4;3,2,1]

保存为B1.m文件,退出编辑环境。此时在命令窗口中使用B1命令就

可调出B矩阵。

需要注意的是,变量名和脚本名不能同名,不然就会无法识别。

如果B1.m文件不在project工程目录下,就会有如下结果:

这个时候可以直接使用window自带的拖拽功能,直接将文件拖拽到project目录下即可。

1.3,ones函数

输入x=ones(3,4),观察输出结果。

观察结果:

Ones有1的意思,在创建矩阵时,会用1来填充矩阵的所有行和列。

1.4,who和whos的使用

输入who和whos观察结果,了解其作用。

 观察结果并了解到其作用:

who只是简单的列出了同一个工程下所有文件的变量名。

whos相比于who列出的信息更详细,如:该变量的名字,大小,类型和所占的字节。

2,绘制信号曲线 

2.1,实指数信号 

%f(t)=3e-t;
%(t>0(取适当的△t)
dt=0.01;
t=0:dt:5;
y=3*exp(-t);
plot(t,y);

 产生3-e^(-t)的信号

%f(t)=3-e-t;
%(t>0(取适当的△t)
dt=0.01;
t=0:dt:5;
y=3-exp(-t);   % exp表示以常数e为底的指数函数
plot(t,y);

2.2,频率为50Hz的周期方波信号

dt=0.001;    % 采样间隔为0.001s
t=0:dt:1;
y=square(2*pi*50*t);
plot(t,y);
axis([0,0.1,-1.1,1.1]);
title('·½²方波');
xlabel('时间/s');
ylabel('幅度/db');
axis manual;

axis - 设置坐标轴范围和纵横比。此 MATLAB 函数 指定当前坐标区的范围。以包含 4 个、6 个或 8 个元素的向量形式指定范围。

2.3,信号卷积 *

%f(t)=e^(-t)  % 实指数信号
%sin(2лt)(0<t<3)
dt=0.01;
t=0:dt:5;
y=exp(-t).*sin(2*pi*t);  % exp表示以常数e为底的指数函数
plot(t,y);

2.4,产生从-4π到4π的Sa(t)函数

%f(t)=sa(t); 样本函数
%(t>0(取适当的△t)
dt=0.001;
t=-4*pi:dt:4*pi;
y=sin(t)./t;
plot(t,y);

2.5,单位阶跃信号u(t)

t=-1:0.01:3;
f=heaviside(t);
plot(t,f);
axis([-1 3 -0.1 1.2]);

在Matlab中,heaviside函数用于计算阶跃函数。这个函数以0为分界点,当函数的自变量小于0时返回0,当自变量等于0时返回0.5,当自变量大于0时返回1。例如,heaviside(2)返回1,heaviside(-3)返回0, heaviside(0)返回0.5。 

2.6,g(t)=u(t)-u(t-1)

依旧可以使用heaviside函数来生成u(t-1),如下👇 

t=0:0.01:3;
f1=heaviside(t);  % u(t)
f2=heaviside(t-1);% u(t-1)
g=f1-f2;          % u(t)-u(t-1)
plot(t,g);
axis([0 3 -2 2]);

 如果想要绘制u(t-2)的信号,可以用heaviside(t-2)。

2.7,单位冲激信号δ(t)

t = (-1:0.0001:1);  % 中间的0.0001是采样间隔,也可以理解为采样周期,采样周期越小,采样频率就会越大,得到的图像就越是我们想要的结果
impulse = t==0;     % 冲击信号只有在t=0时才有取值,其它部分值为0
plot(t,impulse);

1)stem函数

stem函数主要用于绘制离散序列,而plot用于绘制连续信号。如下,我先用stem函数来绘制离散的正弦信号,👇 

x=0:0.1:2*pi;
y=sin(x);
stem(y,"filled");

 对应的效果如下图:

 如果我用plot函数来代替stem函数,得到的就是下图:

2.8,u(n-3)

绘制u(x-3)延迟阶跃信号有两种方法,一种是使用heaviside函数,另外一种就是使用表达式,如下,都可以得到图中的信号图👇

t=0:0.001:6;
y=heaviside(t-3);  % 使用heaviside函数绘制阶跃信号
%y=(t>3);  % 阶跃信号只有在指定初始位置之后才有值,之前的值为0
plot(t,y);

如果觉得y轴太“矮”,想要自定义高度,也可以,我就需要使用到之前的axis坐标轴函数来设置x和y相应的坐标,如下👇

t=0:0.01:6;
%y=heaviside(t-3);  % 使用heaviside函数绘制阶跃信号
y=(t>=3);  % 阶跃信号只有在指定初始位置之后才有值,之前的值为0
plot(t,y);
axis([-1 6 0 2]);

如果想要离散的时间序列,可以将plot函数替换成stem函数,如下👇

n=0:0.001:6;
y=heaviside(n-3);  % 使用heaviside函数绘制阶跃信号
%y=(n>3);  % 阶跃信号只有在指定初始位置之后才有值,之前的值为0
%plot(n,y);
stem(n,y);  % 绘制离散序列

因为在对连续时间信号进行抽样时,我使用的是按照采样周期0.001来进行采样,所以,就会显示出有一个由无数多个单位冲击序列组成的单位阶跃序列,如果放大蓝色区域就可以看到无数多个冲击序列,如下图👇

如果不想要那么密集的显示,可以将采样周期删除掉,效果就会是如下图👇

2.9  冲击序列δ(n)

n=-1:3;
y=(n==0);
stem(n,y);

3,矩阵运算

给出下面三个矩阵

A=[4 12 20;12 45 78;20 78 136];

B=[1 2 3;4 5 6;7 8 9];
I=eye(1);  % 单位矩阵

eye(N),返回N*N大小的单位矩阵;
eye(M,N)、eye([M,N]),返回M*N的单位矩阵;
eye(size(A))返回和矩阵A一样大小的单位矩阵;
eye无参数时表示标量1
 

matlab有两种使用方式:一种是使用M文件,另一种是直接交互的命令行操作方式。交互式界面相对于M文件不需要每次运行保存,速度会更快,接下来的矩阵运算,转到命令行,如下👇。 

回答有关问题:

1)A+5*B和A-B+I分别为多少?

①A+5*B

②A-B+I

2)A.*B

3)A*B

官方给出的解释:

*  mtimes - 矩阵乘法

    此 MATLAB 函数 是 A 和 B 的矩阵乘积。如果 A 是 m×p 矩阵,B 是 p×n 矩阵,则 C 是通过以下公式定义的 m×n 矩阵:...

    C = A*B
    C = mtimes(A,B)

如果想要了解更多,请查看matlab的帮助文档,如下图👇

如果是一个序列一个数值p使用了*运算符,那么结果就是该序列变为了原来的p倍,如下👇

 

4)A.^B

matlab官方的解释:

.^  power - 按元素求幂

    此 MATLAB 函数 计算 A 中每个元素在 B 中对应指数的幂。A 和 B 的大小必须相同或兼容。

    C = A.^B
    C = power(A,B)

5)A./B

matlab官方解释:

. /  rdivide - 数组右除

    此 MATLAB 函数 用 A 的每个元素除以 B 的对应元素。A 和 B 的大小必须相同或兼容。

    x = A./B
    x = rdivide(A,B)

6)A.\B

官方解释:

.\ ldivide - 数组左除

    此 MATLAB 函数 用 A 的每个元素除以 B 的对应元素。A 和 B 的大小必须相同或兼容。

    x = B.\A
    x = ldivide(B,A)

有问题请在评论区留言或者是私信我,一天8h在线。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/620486.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云卓LS-01喊话器说明书-新版中文

一: 概述 LS-01 无人机喊话器适用于搭载无人机进行交通管制、现场指挥、应急救援、人群疏导、防疫宣传、景区安防、鱼塘巡视、林业防控等场景。产品具有喊话、警报、播放多媒体文件等多种功能。喊话器外壳采用尼龙加纤材质&#xff0c;具有抗、抗震、轻便灵活、外观新颖、质量稳…

第四百五十四回

文章目录 1. 问题描述2. 优化方法2.1 缩小范围2.2 替代方法 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何获取AppBar的高度"相关的内容&#xff0c;本章回中将介绍关于MediaQuery的优化.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 问题描述 我们在…

【Java开发指南 | 第一篇】类、对象基础概念及Java特征

读者可订阅专栏&#xff1a;Java开发指南 |【CSDN秋说】 文章目录 类、对象基础概念Java特征 Java 是一种面向对象的编程语言&#xff0c;它主要通过类和对象来组织和管理代码。 类、对象基础概念 类&#xff1a;类是一个模板&#xff0c;它描述一类对象的行为和状态。例如水…

AI智能分析网关V4平台告警数据清理方法:自动清理与手动清理

TSINGSEE青犀智能分析网关V4属于高性能、低功耗的软硬一体AI边缘计算硬件设备&#xff0c;目前拥有3种型号&#xff08;8路/16路/32路&#xff09;&#xff0c;支持Caffe/DarkNet/TensorFlow/PyTorch/MXNet/ONNX/PaddlePaddle等主流深度学习框架。硬件内部署了近40种AI算法模型…

构建鸿蒙ACE静态库

搭建开发环境 根据说明文档下载鸿蒙全部代码&#xff0c;一般采取第四种方式获取最新代码(请保证代码为最新) 源码获取Windows下载编译环境 MinGW GCC 7.3.0版本 请添加环境变量IDE 可以使用两种 CLion和Qt,CLion不带有环境需要安装MinGW才可以开发,Qt自带MinGW环境&#xff0…

睿考网:二建报考社保不够可以报考吗?

在报名参加二级建造师资格考试时&#xff0c;考生需符合学历、专业和工作经验的准入条件&#xff0c;社保缴费记录并非报名的强制性条件。 某些地区并不将社会保险作为报名的必要前提&#xff0c;其他一些地区则可能仅需要考生提供6个月或12个月的社会保险缴纳证明即可参加考试…

大模型面试准备(十五):BERT 工作流程

节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学&#xff0c;针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何备战、面试常考点分享等热门话题进行了深入的讨论。 合集在这…

C语言编程环境详解(Vscode编辑器基础上C语言编程环境搭建详细教程步骤)

1、语言分类介绍 编译型语言&#xff1a;C、C 解释型语言&#xff1a;Python、Js 2、C语言编译器 GCC系列&#xff1a; GNU编译器套装(英语&#xff1a;GNU Compiler Collection&#xff0c;缩写为GCC)&#xff0c;指一套编程语言编译器&#xff0c;常被认为是跨平台编译器的事…

Vue3 中vue-quill富文本编辑器图片缩放

导包 import BlotFormatter from quill-blot-formatter/dist/BlotFormatter; Quill.register(modules/blotFormatter, BlotFormatter) 添加配置 blotFormatter: {modules: ["Resize", "DisplaySize", "Toolbar"]}, 注&#xff1a; 该编辑器已经…

c++的学习之路:4、入门(3)

摘要 本章将介绍一下auto、for和指针空值&#xff0c;文章末附上入门的所有代码。 目录 摘要 一、auto 二、for 三、指针空值 四、代码 五、思维导图 一、auto 这个关键字是c提出的&#xff0c;可以自动识别变量的类型&#xff0c;可以看出下方图片&#xff0c;auto自…

关于《CS创世 SD NAND》的技术学习分享

最近发现一个好玩的东西《CS创世 SD NAND》&#xff0c;带大家一起体验一下。 本文引用了部分厂家产品资料及图像&#xff0c;如有侵权&#xff0c;请及时联系我删除&#xff0c;谢谢。 《CS创世 SD NAND》官方网站&#xff1a;http://www.longsto.com/ 什么是CS创世 SD NAND呢…

SkyWalking 为所有的API接口增加 tag

背景胡扯 线上接口报错&#xff0c;接着被 SkyWalking 抓到&#xff0c;然后 SkyWalking 触发告警&#xff0c;最后老板你&#xff0c;让你辛苦一下&#xff0c;在明早上班前把这个bug 改了&#xff0c;并告诉你你是全公司的希望。谁说不是呢&#xff1f;为公司业务保驾护航&a…