热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

第三章MATLAB的使用

目录一、初识MATLAB1、MATLAB界面2、三种基本操作3、实时脚本文件二、MATLAB单引号和双引号1、string变量(字符串变量)

目录

一、初识MATLAB

1、MATLAB界面

2、三种基本操作

3、实时脚本文件

二、MATLAB单引号和双引号

1、string变量(字符串变量)

2、char变量(字符变量)

三、矩阵运算

四、线图、条形图、极坐标图、散点图

五、MATLAB三维图和内嵌子图

1、三维曲面图

2、子图

六、 MATLAB导入数据

七、MATLAB处理缺失值和异常值 




一、初识MATLAB


1、MATLAB界面


  • MATLAB简介、安装、界面(推荐2020b)
    • 矩阵实验室,数据是以矩阵的形式存在,强大的数学软件
    • 一般学校都已购买;到CSDN去搜安装步骤:CSDN - 专业开发者社区CSDN是全球知名中文IT技术交流平台,创建于1999年,包含原创博客、精品问答、职业培训、技术论坛、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区.https://www.csdn.net/


2、三种基本操作


  • 在命令行输入指令
    • 输入完指令后,敲回车就自动运行
    • 指令是不会存储的
    • clc(清空命令行),clear (清空工作区),按上方向键调用历史命令(很方便)
  • 在脚本文件中编写程序后运行
    • 脚本文件,就是存放代码的文件,尾缀.m
    • 实时脚本文件界面更加方便,把结果实时显示在代码旁边推荐使用
  • 在函数文件中编写程序,然后在脚本文件中调用
    • 函数文件相当于做好一个工具,以后用到的时候直接调用,尾缀也是.m
    • 有固定格式,例如: function [sigma, theta,x,y, final_ res] = Simple(f, a, b, index)

3、实时脚本文件


  • 在同一个界面里,既看到所写代码,也看到输出结果


 
二、MATLAB单引号和双引号


1、string变量(字符串变量)


  • 双引号(英文输入法,且2017a之后的版本)
    • 例如t = "Brave uncle is not afraid to top" 即定义了string变量, 也就是字符串变量
    • 如果字符串本身有双引号,则在双引号位置使用双重双引号
    • 例如,想把这句话定为字符串变量:Brave ""uncle"" is not afraid to top
    • 代码应该写t = "Brave ""uncle"" is not afraid to top"
  • 字符串和数值变量的区别
    • a = 1+1,运行结果是2
    • a = "1 + 1",运行结果是"1 + 1"
  • 字符串添加内容
    • w = t + "forever"
    • 矩阵存储多个元素
    • A = ["a","b","c";"d","e","f"]

2、char变量(字符变量)


  •  单引号(英文输入法)
    • 字符表示的数据并不对应到文本,例如DNA序列字符串和数值变量的区别
    • DNA = 'GCTAGAATCC'
    • 如果字符串本身有单引号,则在单引号位置使用双重单引号 'GCT''A''GAATCC'
    • 选择第四个字符: s = DNA(4),得到的是'A'
  • 添加内容
    • 使用方括号把多个字符数组串联起来
    • DNA2  =  [DNA, ' ZZZZZ' ]
  • 双引号得到的是1个string变量,单引号得到的是多个char变量,一定不要混淆!
     

三、矩阵运算

 


 四、线图、条形图、极坐标图、散点图


五、MATLAB三维图和内嵌子图


1、三维曲面图


  • surf函数可用来做三维曲面图。一般是展示函数z = z(x,y)的图像。
  • 首先需要用 meshgrid 创建好空间上(x,y) 点。 

[X,Y] = meshgrid(-2:0.2:2);
%Z = X.^2 + Y.^2
Z = X.*exp(-X.^2-Y.^2);
surf(X,Y,Z);
colormap hsv % colormap设置颜色,可跟winter、summer等,hsv是一种颜色模型
colorbar % 显示色阶的颜色栏


2、子图

使用 subplot 函数可以在同一窗口的不同子区域显示多个绘图 

theta = 0:0.01:2*pi;
radi = abs(sin(2*theta).*cos(2*theta));
Height = randn(1000,1);
Weight = randn(1000,1);t = 0:pi/10:2*pi;
[X,Y,Z] = cylinder(4*cos(t));subplot(2,2,1); surf(X.^2); title('1st');
subplot(2,2,2); scatter(Height,Weight) ; title('2nd');
subplot(2,2,3); mesh(Z); title('Z');
subplot(2,2,4); mesh(X,Y,Z); title('X,Y,Z');

 


六、 MATLAB导入数据

最常用的就是导入excel表格数据,主页选项卡-导入数据-选择excel文件


  • 导入的范围
    • 导入数据的范围默认是从第二行开始的,第一行一般是标题行。
    • 如果不想导入所有数据,可以按住ctrl键,选择想导入的内容,例如某行、某列。
    •  “变量名称行”也就是导入之后,matlab里表格最上方会显示变量,一般默认选择原文件第一行。但是只能识别英文,如果是汉字则变成“VerName”。

 


  • 导入类型
    •  “输出类型”决定了导入的数据以什么类型存储。一般选择表。如果选择“数值矩阵”,那么所有字符串都变成NaN,反之亦然。

注意,导入后数据在工作区。关闭matlab后数据消失。如果想保存数据的话,记得保存工作区文件!


  • 处理无法导入的数据
    • 例如设置输出类型为“数值矩阵”,那么表格里的字符串怎么办?
    • 选择替换,则所有字符串都变成NaN
    • 选择排除行,那么某一行只要有字符串,这一行数据都不会被导入
    • 选择排除列,同上


七、MATLAB处理缺失值和异常值 


  • 清理缺失数
  • 实时编辑器,选择任务 > 清理缺失数据
  • 首先,先写一组包含缺失值和异常值的例子

x = 1:100; % 构造一个数组,元素为1,2,3,……,100
% randn(1,100)意味着生成一个1行100列的矩阵
% 矩阵元素的均值为0,方差 σ^2 = 1,且是正态分布的随机数
data = randn(1,100);
data(20:20:80) = NaN; % 设置第20,40,60,80个元素为缺失值
% data的值都是在0附近的,设置4个异常值
data(10) = -50;
data(40) = 45;
data(70) = -40;
data(90) = 50
plot(x,data)

 

 

 


推荐阅读
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • 解决.net项目中未注册“microsoft.ACE.oledb.12.0”提供程序的方法
    在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报错“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序”。本文提供了解决这个问题的方法,包括错误描述和代码示例。通过注册提供程序和修改连接字符串,可以成功读取excel文件信息。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • MATLAB函数重名问题解决方法及数据导入导出操作详解
    本文介绍了解决MATLAB函数重名的方法,并详细讲解了数据导入和导出的操作。包括使用菜单导入数据、在工作区直接新建变量、粘贴数据到.m文件或.txt文件并用load命令调用、使用save命令导出数据等方法。同时还介绍了使用dlmread函数调用数据的方法。通过本文的内容,读者可以更好地处理MATLAB中的函数重名问题,并掌握数据导入导出的各种操作。 ... [详细]
  • 小程序自动授权和手动接入的方式及操作步骤
    本文介绍了小程序支持的两种接入方式:自动授权和手动接入,并详细说明了它们的操作步骤。同时还介绍了如何在两种方式之间切换,以及手动接入后如何下载代码包和提交审核。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • 本文介绍了Java中Hashtable的clear()方法,该方法用于清除和移除指定Hashtable中的所有键。通过示例程序演示了clear()方法的使用。 ... [详细]
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 手把手教你使用GraphPad Prism和Excel绘制回归分析结果的森林图
    本文介绍了使用GraphPad Prism和Excel绘制回归分析结果的森林图的方法。通过展示森林图,可以更加直观地将回归分析结果可视化。GraphPad Prism是一款专门为医学专业人士设计的绘图软件,同时也兼顾统计分析的功能,操作便捷,可以帮助科研人员轻松绘制出高质量的专业图形。文章以一篇发表在JACC杂志上的研究为例,利用其中的多因素回归分析结果来绘制森林图。通过本文的指导,读者可以学会如何使用GraphPad Prism和Excel绘制回归分析结果的森林图。 ... [详细]
  • 本文总结了使用不同方式生成 Dataframe 的方法,包括通过CSV文件、Excel文件、python dictionary、List of tuples和List of dictionary。同时介绍了一些注意事项,如使用绝对路径引入文件和安装xlrd包来读取Excel文件。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
author-avatar
金玉的海角_745
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有