作者:金玉的海角_745 | 来源:互联网 | 2023-06-05 21:31
目录
一、初识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)