快速上手MATLAB:科研、工程、数据分析,MATLAB入门(下)教你基础知识!分享《MATLAB初学者教程 MATLAB编程-菜鸟入门(清晰版)》

news2024/12/28 17:59:41

快速上手MATLAB:科研、工程、数据分析,MATLAB入门(上)教你基础知识!

  • 福利:文末有资料分享!!
  • 前言
  • 一、文件读取
    • 1. 工作空间数据读取
    • 2. 文本文件读取
    • 3. 常用的数据导入和导出函数
    • 4. 图像文件的读入和输出
  • 二、MATLAB绘图
    • 1.二维图形绘制
      • 1、plot(x,'PropertyName',PropertyValue)
      • 2、plot(x,y,'PropertyName',PropertyValue)
      • 3、plot(x1,y1,x2,y2,'PropertyName',PropertyValue)
    • 3. 三维曲线绘制
    • 4. 网格与曲面图绘制
    • 7. 特殊图形绘制
      • (1)饼图绘制
      • (2)直方图和梯形图
  • 总结

福利:文末有资料分享!!

1、《MATLAB完全学习手册(视频+课件+代码)》
2、《MATLAB入门》
3、《详解MATLAB在科学计算中的应用》
4、《案例二 MATLAB与Excel交互》
5、《MATLAB初学者教程 MATLAB编程-菜鸟入门(清晰版)》
6、《MATLAB常用函数参考 MATLAB函数汇总 精通MATLAB》
7、等等。。。。

前言

前两天,我们在(MATLAB入门(上))中简单认识了MATLAB,了解了MATLAB的基础知识,今天继续从文件读取、MATLAB绘图两个方面给大家介绍。

一、文件读取

1. 工作空间数据读取

在MATLAB中可以将工作空间的变量保存为文件,可以从文件中导入数据保存为变量,常用命令为save函数。

save:将当前工作区的所有变量以二进制格式保存到文件matlab.mat文件张总,不同类型的数据按照对应的最大精度保存,并保存对应的变量名称。

save(‘filename’):将文件保存到当前目录下,文件名为filename.mat,如需要保存到其他目录下,需需要添加文件路径。

save(‘filename’,‘var1’,‘var2’):将工作空间内指定变量保存到文件filename.mat中。

load:加载matlab.mat中所有的变量,如果文件不存在则返回错误。

load filename:加载指定文件filename中的所有变量,加载时根据文件后缀确定文件的读入方式。

图片

在这里插入图片描述

2. 文本文件读取

A = fread(fid):通过文件指针读入二进制格式文件,读入的数据存放在数组A中,读入数据的过程中,文件指针从头到尾,可用feof检测。

A = fread(fid,count):读入count个数组元素,fread读入后,文件指针定位于读入字节的下一字节处,后续读入的字节从此开始。

A = fread(fid,count,precision,skip):以precision指定的精度读入数据,skip可以选择跳过若干个字符。

在这里插入图片描述

在这里插入图片描述

3. 常用的数据导入和导出函数

dlmread:从分隔文本文件中读入数据

dlmwrite:将数据写入分隔文本文件

textread:从文件中读入格式化文本

textscan:利用fopen函数打开文件后,读入格式化文件

xlsread:读入电子表格中的数据

imread:从图像文件中读入数据

imwrite:将数据写入图像文件

aviread:从avi文件中读入数据

4. 图像文件的读入和输出

图像文件读入可以通过imread函数来实现,该函数只支持多种格式的图像文件,包括BMP、CUP、GIF、HDF、ICO、JPG、PBM、PCX、PGM、PNG、PNM、PPM、RAS、TIF、XWD。

A = imread(filename,fmt):从filename中读入图像文件,如果图像文件不在当前目录,则需要指出路径,fmt为图像文件格式

[X,map] = imread(filename,fmt):将位图文件读入到X中,相关的颜色数据读入到map中,颜色数据在[0,1]之间变化。

[~] = imread(URL,filename):从网络中导入图片,url为网址

在这里插入图片描述

在这里插入图片描述

图片

图像文件输出可以通过imwrite函数来实现,支持的图像文件格式包括BMP、CUP、GIF、HDF、ICO、JPG、PBM、PCX、PGM、PNG、PNM、PPM、RAS、TIF、XWD。

imwrite(A,filename,fmt):将图像A以指定的图像格式fmt写入filename文件中,A可以是mn的灰色图像,也可以是mn*3的彩色图像。

imwrite(X,map,filename,fmt):将X中的位图和相关的色彩映像以指定的格式fmt写入文件中。

%绘制图像

x = 0:pi/12:2*pi;

plot(sin(x),cos(x),'color','blue','linewidth',5,'marker','d');

axis square

PS.Color = [0.7,0.7,0];

PS.LineWidth = 2;

line(sin(7*x),cos(7*x),PS)

[X,map] = imread('figure','jpg');

imshow(X,map)

imwrite(X,'figure_new','jpg')

在这里插入图片描述

二、MATLAB绘图

1.二维图形绘制

plot函数是Matlab绘制二维图形的常用函数,该函数将数组中的数据点绘制在坐标平面上,通过直线将这些点连起来构成一条连续的曲线。主要的命令格式如下:

1、plot(x,‘PropertyName’,PropertyValue)

x表示绘制图表的数据,Property表示属性的字符选项,PropertyValue表示相应的选值。

当x是一维数组时,以数组元素的下标为横坐标,元素数值为纵坐标绘制曲线;

当x为二维数组时,数组的每列数组元素为总坐标,数组下标为横坐标绘制多条曲线。

2、plot(x,y,‘PropertyName’,PropertyValue)

当x和y为同维数组时,分别以x和y为横纵坐标绘制曲线,

x为一维数组,y为矩阵时,y的某一维度与x维度相等,绘制多条曲线;

x和y都为矩阵时,分别以对应的x和y为横纵坐标,曲线条数与矩阵列数相等。

3、plot(x1,y1,x2,y2,‘PropertyName’,PropertyValue)

在窗口中同时绘制以x1和y1,x2和y2等分别为横纵坐标的曲线。

%plot函数绘图示例

%生成一维数组及参数数组

a = 0:0.1:1;

t = 0:0.01:1;

%生成二维数组

y = sin(3*t').*exp(-t')*a;

%figure1:二维数组绘制曲线

subplot(2,2,1)

plot(y)

axis([0,100,0,1]);

xlabel('index');ylabel('y');

title('figure1');

%figure2:一维数组和二维数组绘制曲线

subplot(2,2,2)

plot(t,y)

axis([0,1,0,1]);

xlabel('t');ylabel('y');

title('figure2');

%figure3:二维数组和一维数组绘制曲线

subplot(2,2,3)

plot(y,t)

axis([0,1,0,1]);

在这里插入图片描述z

  1. 线型、标记和颜色

MATLAB中常见的线型、标记符、颜色如下图所示。

在这里插入图片描述

%plot函数参数示例

%生成一维数组

t = 0:pi/20:3*pi;

%生成因变量数组

y = exp(-t/3).*sin(2*t+3);

y1 = exp(-t/3);

%绘制曲线

plot(t,y,'b:*',t,y1,'r-')

xlabel('t');ylabel('y');

title('Linestyle and markers');

legend('y=exp(-t/3).*sin(2*t+3)','y1=exp(-t/3)');

在这里插入图片描述

3. 三维曲线绘制

plot3函数是Matlab绘制三维曲线的常用函数,输入参数时,需要输入第三个参数数组。

plot(x,y,z,LineSpec,‘PropertyName’,PropertyValue)

如果x,y和z是同维数组(向量、矩阵),分别以对应列作为x、y和z坐标,曲线的个数等于矩阵列维。

%plot3函数绘图示例

t = 0:pi/50:10*pi;

plot3(sin(t),cos(t),t,'r*-');

xlabel('sin(t)');ylabel('cos(t)');zlabel('t');

title('figure1:helix');

%绘制多条曲线

figure;

x = linspace(0,3*pi,200);

z1 = sin(x); z2 = sin(2*x); z3 = sin(3*x);

y1 = zeros(size(x)); y2 = ones(size(x));

y3 = 2*ones(size(x));

plot3(x,y1,z1,'r*',x,y2,z2,'bp',x,y3,z3,'mx');

xlabel('x');ylabel('y');zlabel('z');

title('figure2:sin(x),sin(2x),sin(3x)');

在这里插入图片描述

4. 网格与曲面图绘制

三维网格图相当于在x-y平面上的z坐标定义一个网格面,相邻的点通过直线连接,网格节点就是z的数据点,在Matlab中通过mesh函数实现。

mesh(z):以z矩阵的列和行的下标为x和y轴的自变量绘制网格图;

mesh(x,y,z):x和y为自变量矩阵,z为建立在x和y之上的函数矩阵;

与mesh函数相比,surf函数使曲面上的所有网格都填充了颜色,命令格式与mesh函数类似。但提供了平面阴影和插值阴影。

%mesh函数绘图示例

x = 0:pi/20:2*pi;

y = 0:pi/20:2*pi;

[X,Y] = meshgrid(x,y);

Z = sin(X)+cos(Y);

mesh(X,Y,Z)

xlabel('X');ylabel('Y');zlabel('Z');

title('figure1');

figure;

mesh(Z)

xlabel('X');ylabel('Y');zlabel('Z');

title('figure2');

在这里插入图片描述

%surf函数绘图示例

x = 0:pi/20:2*pi; y = 0:pi/20:2*pi;

[X,Y] = meshgrid(x,y);

Z = sin(X)+cos(Y);

surf(X,Y,Z)

shading flat

xlabel('X');ylabel('Y');zlabel('Z');

title('figure1');

figure;

surf(Z)

shading interp

xlabel('X');ylabel('Y');zlabel('Z');

title('figure2');

在这里插入图片描述

  1. 等值线绘制

等值线图能够将具有相同数值的点连起来绘制相等数值的曲线或曲面,常用的MATLAB绘制等值线图函数的命令格式为:

contour(z):绘制z所表达的等值线图

coutour(z,n):参数n为所需要绘制的等值线图的数目

contour(z,v):向量v定义了等值线的数目和数值

%等值线绘图示例

x = 0:pi/20:2*pi;

y = 0:pi/20:2*pi;

[X,Y] = meshgrid(x,y);

Z = sin(X)+cos(Y);

surf(X,Y,Z)

shading interp;

contour(X,Y,Z,-2:0.4:2)

xlabel('X');ylabel('Y');

title('二维等值线图');

figure

contour3(X,Y,Z,60)

xlabel('X');ylabel('Y');zlabel('Z');

title('三维等值线图');

在这里插入图片描述

  1. 颜色表示等值线

%颜色表示等值线绘图示例

x = 0:pi/20:2*pi;

y = 0:pi/20:2*pi;

[X,Y] = meshgrid(x,y);

Z = sin(X)+cos(Y);

surf(X,Y,Z)

shading interp;

figure

contourf(X,Y,Z,20)

在这里插入图片描述

7. 特殊图形绘制

(1)饼图绘制

pie(x):绘制向量x的饼图,x中的每一个元素就是饼图中的每一个扇形部分。

pie(x,explode):参数explode和x是同维数组,如果explode中有非零元素,x数组中对应元素唉饼图中将向外移出元素数值大小,加以突出。

pie(~,labels):参数labels表示饼图上的扇形。

%饼图绘制示例

%向量参数设定

x = [1,3,0.5,2.5,2];

explode = [1,0,0,0,0];

subplot(1,2,1)

pie(x,explode,{'a','b','c','d','e'});

title('二维饼图')

subplot(1,2,2)

pie3(x,explode);

title('三维饼图')

在这里插入图片描述

(2)直方图和梯形图

bar(y):为一维数组y的每个元素绘制一个条形。

bar(x,y):在横坐标向量x上绘制直方图y,x向量需要按照递增的方式排列。

bar(~,width):width用于设置直方图条形的相对宽度和条形之间间距。

hist(y,n):表示数组y中值的分布情况,n表示柱状图中柱的数量,默认为10个。

%绘制直方图和柱形图

x = -3:0.3:3;

y = exp(-x.^2);

bar(x,y,0.8);

xlabel('x');ylabel('y')

figure

bar3(x,y,0.9)

xlabel('x');ylabel('y')

y = randn(1,10000);

figure

hist(y,30)

在这里插入图片描述

总结

MATLAB是一款广泛应用的科学计算工具,适用于科研、工程、数据分析等领域。认识MATLAB需要了解其概述及特点,学会使用命令窗口、创建M文件、目录和文件管理、搜索路径管理等基本操作。MATLAB基础知识包括简单计算、基本运算符号、数值、变量及表达式、数组的生成和寻访。编程基础则包括流程控制、控制命令、逻辑数组和向量化等。掌握这些基础知识可以让使用MATLAB更加得心应手。
在这里插入图片描述
关注微信公众号:资源充电吧
回复:MATLAB
在这里插入图片描述

1、《MATLAB完全学习手册(视频+课件+代码)》
2、《MATLAB入门》
3、《详解MATLAB在科学计算中的应用》
4、《案例二 MATLAB与Excel交互》
5、《MATLAB初学者教程 MATLAB编程-菜鸟入门(清晰版)》
6、《MATLAB常用函数参考 MATLAB函数汇总 精通MATLAB》
7、考证、考研、IT、源码等等。。。。海量资源均免费分享哦

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

不吹不黑,安利5个网工必备工具包

大家好,我是老杨。 要说网工的好用工具,你心里肯定有不少选项。工具常用常新,与时俱进,但你的思维却不一定。 研究一个新工具,除了能提升你的工作效率,也能对你的认知有所开拓和提升。 所以,…

《程序员面试金典(第6版)》面试题 02.01. 移除重复节点(哈希映射,多指针暴力破解,链表)

题目描述 编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。 题目传输门:面试题 02.01. 移除重复节点 示例1: 输入:[1, 2, 3, 3, 2, 1]输出:[1, 2, 3]示例2: 输入:[1, 1, 1, 1, 2]输出:[1, 2]…

Hive---拉链表设计与实现

1 数据同步问题 Hive在实际工作中主要用于构建离线数据仓库,定期的从各种数据源中同步采集数据到Hive中,经过分层转换提供数据应用。比如每天需要从MySQL中同步最新的订单信息、用户信息、店铺信息等到数据仓库中,进行订单分析、用户分析。 …

【C++修炼之路】定位new(项目记录)

————————————每一个不曾起舞的日子都是对生命的辜负。 C之定位new 1. 什么是定位new2. 定位new的语法3. 具体实例 1. 什么是定位new 一般的new运算符负责在heap堆中找到一个足以能够满足要求的内存块。 而定位new(Placement new)是C中的一…

运行100万个并发任务,不同语言各需要多少内存

作者:DataStax 公司(美国的一家数据库系统开发商)Piotr Kołaczkowski 原文见: https://pkolaczk.github.io/memory-consumption-of-async/ 在这篇博客文章中,探讨了处理大量网络连接时候的Rust、Go、Java、C#、Pyth…

企企通“码上顺”清洗工具 | 让数据更有价值,让业务更出色

数据清理工作是企业数据管理、数据治理中的最基础的工作之一,不仅是一项苦活、累活,也是一个既考验业务又检验技术的活。 物料主数据作为企业核心的数据资产,在智慧供应链、业财一体化等数字化建设中发挥着重要作用。在当今高速发展的商业环…

《汇编语言》- 读书笔记 - 实验2 用机器指令和汇编指令编程

《汇编语言》- 读书笔记 - 实验2 用机器指令和汇编指令编程 1. 预备知识: Debug 的使用2 .实验任务 1. 预备知识: Debug 的使用 统一完善到:实验 1 查看 CPU 和内存,用机器指令和汇编指令编程。不在这拆开写了。 2 .实验任务 使用 Debug,将…

功率放大器在压电驱动器中的作用及应用

功率放大器在压电驱动器中的作用是将低功率信号放大为足够大的电力信号,以驱动压电陶瓷材料产生相应的机械振动。 压电陶瓷材料是一种特殊的陶瓷材料,能够将机械能转换为电能,因此被广泛应用于各种类型的振动器件和传感器中。这些器件通常需要…

Combiner

概述 Conbiner在MapReduce的Shuffle阶段起作用,它负责局部数据的聚合,我们可以看到,对于大数据量,如果没有Combiner,将会在磁盘上写入多个文件等待ReduceTask来拉取,但是如果有Combiner组件,我们…

5 个章节、25 条规范,全方位 Get 数据集选择与创建的「百科全书」

By 超神经 内容一览:如果你正在学习如何创建或选择一个合适的数据集,那么这篇文章会给你一些实用的建议,帮助你在选择和创建数据集时做出明智的决策。 关键词:机器学习 数据集 本文首发自 HyperAI 超神经微信公众平台~ 作者 |…

星标3.5k,一款国产的轻量级开源在线项目任务管理工具

今天给大家推荐一个轻量级的开源在线项目任务管理工具:DooTask 图片 DooTask 提供各类文档协作工具、在线思维导图、在线流程图、项目管理、任务分发、即时IM,文件管理等工具。 高效便捷的团队沟通工具 针对项目和任务建立群组,工作问题可…

SRP Batcher在真机上失效

1)SRP Batcher在真机上失效 ​2)Shader里面对同一张纹理多次采样会影响效率吗 3)为什么纹理开启了mipmap后,纹理内存反而下降了 4)TMP为什么有多次Delegate.Combine()的GC 这是第336篇UWA技术知识分享的推送&#xff0…

如何减少电脑内存占用?

内存(Memory)是计算机一个重要的组成部件,也称为内存储器或主存储器。它可以暂时存放CPU中运算的数据,以及与硬盘等外部存储器交换的数据,是CPU和硬盘之间的桥梁。若电脑内存占用过高,这会影响到电脑运行的速度,那该如…

网络安全行业推荐考取的证书有哪些?

下面就让知白小编来给解读一下这个问题~作为网络安全行业从业者或者相关专业的大学生,如果相应的职业证书在手,肯定是会身价倍增。 咳咳,但是如果你还是网络安全小白,知白小编不建议你直接去考认证,应该是先打好基础学…

三、LLC 谐振变换器

电压增益特性分析 根据搭建的 LLC 谐振变换器主电路等效模型,可推导出变换器直流电压 增益为 M: λ 4时的增益曲线如下图所示: 根据变换器直流电压增益表达式,利用 Mathematica 绘制出λ4 时,变换器取不同 Q 值的直…

创建型设计模式01-简单工厂模式

✨作者:猫十二懿 ❤️‍🔥账号:CSDN 、掘金 、个人博客 、Github 🎉公众号:猫十二懿 这里只是简单的将《大话设计模式【Java溢彩加强版】》的内容简单是复述一下,并加上自己的理解 简单工厂模式 1、引入问…

windows环境下sublime的nodejs插件详细安装图解

前面的话 搜索了好多文档后,才成功地安装了sublime text3的nodejs插件。为了存档,也为了方便有同样需求的朋友,将其安装过程详细记录如下 安装nodejs 虽然nodejs官网提供了node的msi文件,但本人在win7系统下多次尝试,…

在阿里干了6年自动化测试,30岁即将退休的我,告诉你自动化测试工程师有多吃香...

测试人员需要具备自动化测试或者测试开发能力,已经成为测试行业内容的一种显在趋势,而且这种趋势呈放大态势,其发展前景是十分明朗的。 2022这种疫情期间,就业大环境不是很理想,目前呢,企业倾向于招自动化…

Win11下Microsoft Store安装Ubuntu报错解决指南

目录 从Microsoft Store下载Ubuntu下载安装完毕后,打开安装时报错: 一. WslRegisterDistribution failed with error: 0x8007019e 二. WslRegisterDistribution failed with error: 0x800701bc 如果帮到你的话,麻烦点个免费的关注吧bro♥…

测试开发工程师的薪资上限究竟在哪?年薪50W都不是梦...

在说测试开发工程师的薪资待遇之前,咱们要先了解软件测试岗位是用来做什么的,岗位是否重要,只有你知道了这些,才能判断这个岗位是否有价值!软件测试是依据需求分析和测试用例,运用手工和自动化的手段来验证…