MATLAB应用笔记
其他
1、NaN值
MATLAB判断数据是否为NaN可以直接使用函数:isnan()
三、数据分析
1、相关性
均值、方差、协方差、标准差、相关系数
mean()  %均值
nanmean()%去除NAN值求均值
var()   %方差
cov()   %协方差
std()   %标准差
corrcoef(B,b) %R² 相关系数plot()  %绘图
rcoplot(r,rint)  %残差个案排序图,详情后见
 
二维数组中所有非NAN元素的平均值
AA = reshape(A, size(A,1)*size(A,2),1)%将2维转1维
A=nanmean(AA)
 
1.1 散点图、折线图
绘图详情见后方 :二、绘图
plot(x,y,'*',X,Y,'-')
 
1.2 协方差及协方差矩阵
协方差用来衡量两个变量的总体误差,如果两个变量的变化趋势一致,协方差就是正值,说明两个变量正相关。如果两个变量的变化趋势相反,协方差就是负值,说明两个变量负相关。如果两个变量相互独立,那么协方差就是0,说明两个变量不相关。
 
1.3 相关系数
相关系数(Correlation coefficient)是反应变量之间关系密切程度的统计指标,相关系数的取值区间在1到-1之间。1表示两个变量完全线性相关,-1表示两个变量完全负相关,0表示两个变量不相关。数据越趋近于0表示相关关系越弱。
 R
 R²
 标准差
 协方差
2、分析测试
2.1 一元回归及多元回归、残差图分析
回归分析(regression analysis)是确定两组或两组以上变量间关系的统计方法。

 
 
B=data(:,3);
B=B';
b=data(:,6);
b=b';
X = [ones(length(b),1), B'];%x'表示行向量转置为列向量
Y = b';
%根据输入参数y与X,用最小二乘法求线性回归系数b
[ b,bint,r,rint,stats ] = regress(Y,X);
rcoplot(r,rint)  %残差个案排序图
a=b(1)+(b(2))*B
plot(B,Y,'*',B,a,'-')  %残差点线图
 
2.2 显著性水平p值
[r,p]=corr(yy',xx');  %p为显著性水平
%[h,p,ci,stats1] = ttest2(yy,xx);
 
一、不同格式文件数据的读取、写入、存储
1、常用
1.1 .xls、.xlsx
将p写入表格路径,读取成p,读取xls中字符串
xlswrite ('D:\study\AOD\2020beijing\data.xls', P);
p=xlsread('D:\study\AOD\2020beijing\data.xls');
p=xlsread('D:\study\AOD\2020beijing\data.xls','Sheet1');%sheet1子表格名
[~,~,raw]=xlsread('D:\study\CE-318\a指数550_2021_1.xlsx','Sheet2')%raw获取包括字符串内容
data=raw(:,:);
 
1.2 .mat
另存为Excel数据
(1)将matlab中mat格式的数据保存为 xls 文件,命令为:
xlswrite('训练_42.xlsx',sounds_y2);
%其中“训练_42.xlsx”为另存为文件的名称,sounds_y2为原mat格式的数据
 
(2)将Excel数据读入到matlab中,命令为:
testlabel=xlsread('testlabel.xlsx');
 
2、专业
.tiff、.tif
[A,R] = geotiffread(‘文件路径’)
 A:数据
 R:属性
[A,R] = geotiffread('D:\study\AOD\AVR\2021002.tif') %%%多波段
filepath='D:\study\AOD\AVR\2021002.tif';                     %%图像名称与路径
Info=imfinfo(filepath);                                      %%获取图片信息
Slice=size(Info,1);                                          %%获取图片z向帧数
Width=Info.Width;
Height=Info.Height;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Image=zeros(Height,Width,Slice);
for i=1:SliceImage(:,:,i)=imread(filepath,i);                         %%一层一层的读入图像
end
 
.hdr
该函数语法规则为:
 X = multibandread(filename, size, precision, offset, interleave, byteorder)
 filename: 文件名
 size:图像尺寸和波段数,size = [ 行数 列数 波段数 ]
 precision:读取的图像的数据格式,例如’uint8’,‘uint16’,‘double’等
 offset:偏移(这个参数目前我还不是很懂)
 interleave:存储的图像的数据格式,有 bsq,bil,bip三种格式
 byteorder : 数据存储的字节排列方式,有’ieee-le’(小端),‘ieee-be’(大端)
hdr = read_envihdr('D:\study\AOD\data1\MYD04_L2.A2021001.0900.061.20210_Swath_2D_1_georef.hdr')
Image = multibandread('D:\study\AOD\data1\MYD04_L2.A2021001.0900.061.20210_Swath_2D_1_georef.dat',hdr.size,[hdr.format '=>single'],hdr.header_offset,hdr.interleave,hdr.machine);
% A=Image(:,:,1);
% B=Image(:,:,2);
% C=Image(:,:,3);
A=Image(:,:,4); 
.nc
ncFilePath='D:\Alice\研\modis,matlab\data\MYD04_L2.A2020354.0435.061.2020357193838.nc';
%路径
ncdisp(ncFilePath,'/','full');
lon=ncread(ncFilePath,'lon');  %经纬度
lat=ncread(ncFilePath,'lat');%% 显⽰结构
% ncdisp(ncFilePath);%在命令⾏窗⼝中以⽂本形式显⽰ NetCDF 数据源 source 中的所有组、维度、变量定义,以及所有属
性。
% ncdisp(ncFilePath,‘evap’);%显⽰指定变量的内容.
% ncdisp(ncFilePath,’/’,‘min’);%只显⽰⽰例⽂件 example.nc 的组层次结构和变量定义。
% ncdisp(ncFilePath,’/’,‘full’);%全部显⽰所有结构和定义信息
%% 读取变量值
% ncid = netcdf.open(ncFilePath,‘NOWRITE’); %打开nc⽂件返回索引ID
% [ndims,nvars,ngglobalatts,unlimdimid] = netcdf.inq(ncid);%获取维数,变量数,全局属性数量,
% [varname,xtype,dimids,natts] = netcdf.inqVar(ncid,0); %根据变量索引号获取变量的名称
lon=ncread(ncFilePath,‘lon’);%读取经度变量
lat=ncread(ncFilePath,‘lat’);%读取纬度变量
sm_data=ncread(ncFilePath,‘sm’);%读取sm变量
sm_data1=sm_data(1174:1194,240:262);
sm_data1(sm_data10)=[];
aa=sm_data1;
[h,l]=find(aa0);
aa(h,l)=[];
%% 显⽰数据
% pcolor(lat,lon,sm_data);pcolor(X,Y,C) 指定顶点的 x 坐标和 y 坐标,C 的⼤⼩必须与 x-y 坐标⽹格的⼤⼩匹配,例如,如果
X 和 Y 定义⼀个 m×n ⽹格,则 C 必须为 m×n 矩阵.
% [x,y]=meshgrid(lon,lat);%根据经纬度信息产⽣格⽹.
% phandle=pcolor(x,y,sm_data’);%显⽰⼀个矩阵,其中x,y,sm_data的⾏列数必须⼀致。类似surface函数.
% colorbar
% imwrite(sm_data1,‘D:\Alice\研\modis\aa.tif’,‘tif’)
%% 保存为地理栅格tif格式,以便ArcGIS读取.
data=flipud(sm_data1);
R = georasterref(‘RasterSize’, size(data),‘Latlim’, [double(min(lat)) double(max(lat))], ‘Lonlim’,
[double(min(lon)) double(max(lon))]);%地理栅格数据参考对象(类) 
geotiffwrite(‘D:\Alice\研\modis\aa.tif’,data,R); 
3、批量读取
csv_path=  'D:\study\CE-318\北京-CAMS(39.933牛顿,116.317牛顿)\';   %文件夹路径 
path_list = dir(strcat(csv_path,'*.csv'));  
%dir 函数 列出当前目录下所有子文件夹和文件%list_num = length(path_list);%%文件数量
for i=1:list_num
%%%%%
end
 
3.1带字符串csv批量读取
参考:https://blog.csdn.net/qq_41661878/article/details/119330873
uiopen('D:\study\CE-318\beijingN39.977,E116.381\data\20170101_20171231_Beijing.csv',1)
 
4、批量存储(自定义命名)
xlswrite(strcat(csv_path,yearname,'.xlsx'),DATA); 
%自定义命名将DATA写入表格
%csv_path路径yearname名字
 
二、绘图
1、图形
title('图形名称') %(都放在单引号内)
xlabel('x轴说明')
ylabel('y轴说明')
text(x,y,'图形说明','fontsize',16)
legend('图例1','图例2',)
set(gca,‘XTickLabel’,[1991:1:2009]);%给X轴坐标加标签 (1991-2009间隔1)
xtickangle(50)%更改x轴标签角度
 
2、坐标控制
axis equal :纵横坐标轴采用等长刻度
 axis square:产生正方形坐标系(默认为矩形)
 axis auto:使用默认设置
 axis off:取消坐标轴
 axis on :显示坐标轴
 axis([xmin xmax ymin ymax])
 命令可以限制二维图像的x和y坐标,此处输入axis([0 2pi -2 2]),限制横坐标为0到2pi,纵坐标为-2到2。
3、图例注释
legend(‘text1‘, ‘text2‘,…)
 
4、文本注释
在图形中任意位置添加文本注释,用到的函数为text。其调用语法为text(x,y,‘text’),x、y为标注点的坐标位置,text为添加的文本注释。
 text(x,y,‘标注名’)或者text(x,y,z,‘标注名’)
 Matlab绘图基础——给图像配文字说明(text对象)
5、线型
例 plot(x,y,'k*',x1,y1,'b--')
 
matlab怎么设置自定义和旋转坐标轴刻度值及标签参考
%设置x轴范围和刻度
 set(gca,‘XLim’,[0 10]);%X轴的数据显示范围
 set(gca,‘XTick’,[0:1:10]);%设置要显示坐标刻度
 set(gca,‘XTickLabel’,[0:1:10]);%给坐标加标签
使用plot()绘制一个图形,如我们在MATLAB命令窗口中输入代码:
 a= linspace(-15,0.1,15); %坐标刻度-15~15、间距0.1
 b=sin(a);
 plot(a,b)
 将绘制一个横坐标-15到15的正弦函数曲线图。
使用xticks()函数,xticklabels()函数,以及yticks()函数在指定位置显示横坐标和纵坐标刻度值,间距可以不一致。
 xticks([-3pi -2pi -pi 0 pi 2pi 3pi])
 xticklabels({‘-3\pi’,‘-2\pi’,‘-\pi’,‘0’,‘\pi’,‘2\pi’,‘3\pi’})
 yticks([-1 -0.9 -0.5 0 0.4 0.7 1])
旋转横坐标和纵坐标标签或刻度的角度,使用xtickangle()函数和ytickangle()函数
 a= 511rand(1,33);
 b=rand(1,33);
 scatter(a,b,'r’)
 xtickangle(50)
 ytickangle(80)
 
6、颜色

相关文章:
MATLAB应用笔记
其他 1、NaN值 MATLAB判断数据是否为NaN可以直接使用函数:isnan() 三、数据分析 1、相关性 均值、方差、协方差、标准差、相关系数 mean() %均值 nanmean()%去除NAN值求均值 var() %方差 cov() %协方差 std() %标准差 corrcoef(B,b) %R 相关系数plot()…...
ERTEC200P-2 PROFINET设备完全开发手册(6-2)
6.2 诊断与报警实验 首先确认固件为 App1_STANDARD, 将宏定义改为: #define EXAMPL_DEV_CONFIG_VERSION 1 参照第6节的内容,编译和调试固件,并在TIA Portal 中建立RT项目。启动固件后,TIA Portal 切换到在线,可以看…...
算法套路八——二叉树深度优先遍历(前、中、后序遍历)
算法套路八——二叉树深度优先遍历(前、中、后序遍历) 算法示例:LeetCode98:验证二叉搜索树 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只…...
视频批量剪辑:如何给视频添加上下黑边并压缩视频容量。
视频太多了,要如何进行给视频添加上下黑边并压缩视频容量?今天就由小编来教教大家要如何进行操作,感兴趣的小伙伴们可以来看看。 首先,我们要进入视频剪辑高手主页面,并在上方板块栏里选择“批量剪辑视频”板块&#…...
那些你需要知道的互联网广告投放知识
作为一个合格的跨境电商卖家,我们除了有好的产品之外,还要知道怎么去营销我们自己的产品。没有好的推广,即使你的产品有多好别人也是很难看得到的。今天龙哥就打算出一期基础的互联网广告投放科普,希望可以帮到各位增加多一点相关…...
【hello Linux】进程程序替换
目录 1. 程序替换的原因 2. 程序替换原理 3. 替换函数 4. 函数解释 5. 命名理解 6.简陋版shell的制作 补充: Linux🌷 1. 程序替换的原因 进程自创建后只能执行该进程对应的程序代码,那么我们若想让该进程执行另一个“全新的程序”这 便要用…...
【网络应用开发】实验4——会话管理
目录 会话管理预习报告 一、实验目的 二、实验原理 三、实验预习内容 1. 什么是会话,一个会话的生产周期从什么时候,到什么时候结束? 2. 服务器是如何识别管理属于某一个特定客户的会话的? 3. 什么是Cookie,它的…...
Linux服务器怎么分区
Linux服务器怎么分区 我是艾西,linux系统除了从业某个行业经常要用到的程序员比较熟悉,对于小白或只会用Windows系统的小伙伴还是会比较难上手的。今天艾西简单的跟大家聊聊linux系统怎么分区,让身为小白的你也能一眼看懂直接上手操作感受程序…...
传统机器学习(四)聚类算法DBSCAN
传统机器学习(四)聚类算法DBSCAN 1.1 算法概述 DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法)是一种基于密度的空间聚类算法。 该算法将具有足够密度的区域划分为簇,并在…...
“华为杯”研究生数学建模竞赛2020年-【华为杯】A题:ASIC 芯片上的载波恢复 DSP 算法设计与实现(附获奖论文及matlab代码实现)
目录 摘 要: 1.问题重述 1.1 问题背景 1.2 问题提出 1.3 研究基础 2.模型假设和已知...
1043.分隔数组以得到最大和
题目: 给你一个整数数组 arr,请你将该数组分隔为长度 最多 为 k 的一些(连续)子数组。分隔完成后,每个子数组的中的所有值都会变为该子数组中的最大值。 返回将数组分隔变换后能够得到的元素最大和。本题所用到的测试…...
微服务治理框架(Istio)的认证服务与访问控制
本博客地址:https://security.blog.csdn.net/article/details/130152887 一、认证服务 1.1、基于JWT的认证 在微服务架构下,每个服务是无状态的,由于服务端需要存储客户端的登录状态,因此传统的session认证方式在微服务中不再适…...
数据结构 | 排序 - 总结
排序的方式 排序的稳定性 什么是排序的稳定性? 不改变相同数据的相对顺序 排序的稳定性有什么意义? 假定一个场景: 一组成绩:100,88,98,98,78,100(按交卷顺序…...
crontab -e 系统定时任务
crontab -e解释 crontab 是由 “cron” 和 “table” 两个单词组成的缩写。其中,“cron” 是一个在 Linux 和类 Unix 操作系统中用于定时执行任务的守护进程,而 “table” 则是指一个表格或者列表,因此 crontab 就是一个用于配置和管理定时任…...
前后端交互系列之Axios详解(包括拦截器)
目录 前言一,服务器的搭建二,Axios的基本使用2.1 Axios的介绍及页面配置2.2 如何安装2.3 Axios的前台代码2.4 Axios的基本使用2.5 axios请求响应结果的结构2.6 带参数的axios请求2.7 axios修改默认配置 三,axios拦截器3.1 什么是拦截器3.2 拦…...
定时任务之时间轮算法
初识时间轮 我们先来考虑一个简单的情况,目前有三个任务A、B、C,分别需要在3点钟,4点钟和9点钟执行,可以把时间想象成一个钟表。 如上图中所示,我只需要把任务放到它需要被执行的时刻,然后等着时针转到这个…...
实验4 Matplotlib数据可视化
1. 实验目的 ①掌握Matplotlib绘图基础; ②运用Matplotlib,实现数据集的可视化; ③运用Pandas访问csv数据集。 2. 实验内容 ①绘制散点图、直方图和折线图,对数据进行可视化; ②下载波士顿数房价据集,并…...
【软件工程】为什么要选择软件工程专业?
个人主页:【😊个人主页】 文章目录 前言软件工程💻💻💻就业岗位👨💻👨💻👨💻就业前景🛩️🛩️🛩️工作环…...
5类“计算机”专业很吃香,人才缺口巨大,就业前景良好
说到目前最热门的专业,计算机绝对占有一席之地,是公认的发展前景好、人才缺口大的专业。有人称该专业人数如此众多,势必会导致人才饱和,但是从当前社会互联网发展的趋势来看,计算机专业在很长一段时间都是发展很好的专…...
数仓选型对比
1、数仓选型对比如下(先列举表格,后续逐个介绍) 数仓应用目标产品特点适用于 适用数据类型数据处理速度性能拓展 实施难度运维难度性能优化成本传统数仓(SQLServer、Oracle等关系型数据库)面向主题设计的,为 分析数据而设计基于Oracle、 SQLServer、MyS…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
