![](https://img-blog.csdnimg.cn/20210829092258875.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
MATLAB 学习日记
记录一些关于MATLAB的心得
天外来客Jonty
超越过去,一切自今日始
展开
-
MATLAB 导出可编辑的eps格式图像
【代码】MATLAB 导出可编辑的eps格式图像。原创 2024-02-21 17:13:22 · 719 阅读 · 0 评论 -
MATLAB 如何迅速标记取值在某一区间的所有元素的位置?
快速筛选原创 2023-02-13 19:48:48 · 866 阅读 · 0 评论 -
MATLAB 基于流域边界批量裁剪栅格图像
基于流域边界批量裁剪栅格图像原创 2022-12-21 19:02:20 · 1287 阅读 · 1 评论 -
MATLAB 计算序列连续不间断的最大长度
计算序列连续不间断的最大长度原创 2022-12-10 20:52:18 · 523 阅读 · 0 评论 -
MATLAB 使用geoshow函数绘制地理分布图时,如何快速批量地给点赋色
使用geoshow函数绘制地理分布图时,如何快速批量地给点赋色原创 2022-10-18 00:32:35 · 2231 阅读 · 0 评论 -
MATLAB Boxplot填充颜色并更改箱体及异常点颜色
箱型图绘制及优化原创 2022-09-20 15:18:22 · 9450 阅读 · 0 评论 -
MATLAB 随机森林超参数优化教程(Hyperparameters Tuning of Random Forest)
基于MATLAB的随机森林超参数优化过程翻译 2022-09-01 11:07:48 · 4903 阅读 · 2 评论 -
MATLAB Latex中如何实现换行
先给大家看效果图:代码如下:ylabel({'$\rm{Annual}\;\Delta{\it{S}}$';'$\rm{(mm\,year^{-1})}$'},'interpreter','latex');如果不换行原本应该是ylabel({'$\rm{Annual}\;\Delta{\it{S}}\rm{(mm\,year^{-1})}$'},'interpreter','latex')...原创 2020-04-22 10:53:22 · 4969 阅读 · 0 评论 -
MATLAB 绘制频率分布直方图及累积频率曲线
需要用到函数randnhisthistogramcumsum%% 绘制频率分布直方图及频率分布曲线%% 修改日期 2022/5/17clcclearclose all%% 生成随机数y = randn(100,100); %生成100*100的正态分布随机数y = y(:);%% 计算频数及其频率x = -3.95:0.1:3.95;原创 2022-05-17 23:24:48 · 19460 阅读 · 1 评论 -
MATLAB error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
用MATLAB的websave下数据时遇到了上述报错,在外网找到了答案:加一句options.CertificateFilename=('');即可!后记:写博客的初衷是分享经验,同时是算是自己对思路和代码的整理,方便日后处理数据,应该可以帮到很多人。我已免费分享我的心得,如果看官还有其他问题的,那么:知识付费,我的时间和经验正好可以解决你的问题。咨询问题请添加QQ:8193693542022年4月20日...原创 2022-04-20 15:22:55 · 2642 阅读 · 1 评论 -
MATLAB 字符串和数字的矩阵输出为txt
任务描述:输出一个带有字符串和数字的txt,方便arcgis读取%%字符串和数字的矩阵输出为txt% 修改日期 2022/4/16clcclearclose alltitle = {'name','lat','lon','sf'}; % 表头txt = [72.1513 -122.0189 0.4456 69.5040 -149.5686 0.3343 69.4690原创 2022-04-16 11:00:34 · 4106 阅读 · 0 评论 -
MATLAB 快速标注序列日期
任务描述:获取1900年1月1日至2039年12月31日的日期排列(年-月-日)需要用到datenum函数,将日期转化为日期序数(从公元0年1月1日起的天数)a = datenum(0,1,1)b = datenum(1900,1,1)c = datenum(2039,12,31)d = datenum(2039,12,31)-datenum(1900,1,1)+1%% 运行结果% a = 1% b = 693962% c = 745095% d = 511341900-2039年原创 2022-03-25 13:46:02 · 964 阅读 · 0 评论 -
MATLAB 更改或隐藏热图(heatmap)的坐标轴刻度
在热图中,坐标轴标签用*data表示:figure;my_matrix = rand(3);heatmap(my_matrix, 'Colormap', parula(3), 'ColorbarVisible', 'on', 'XLabel', 'Time', 'YLabel', 'September')ax = gca;ax.XData = ["Hello" "World" "Thursday"]代码和解决思路来自外网,链接如下:How to change XTick Labels in原创 2022-03-24 15:50:28 · 11894 阅读 · 1 评论 -
MATLAB 绘制空间分布图,颜色代表数值(替代ArcGIS)
%% 修改日期 2021/12/9clcclearclose all%% DEM空间分布图figure(1)worldmap([35 75],[-150 -50]); %研究区范围[DEM,R] = geotiffread('F:\DEM_SRTM\North America\Canada_USA_mianland.tif'); %加载带有坐标信息的图DEM = double(DEM); %需要将原创 2021-12-10 13:53:31 · 8446 阅读 · 5 评论 -
MATLAB 绘制点的地理空间分布,并用点的颜色或大小代表数值
%% 修改日期 2021/12/8clcclearclose all%% 测试数据,第一列代表纬度,第二列经度,第三列则是点的值txt = [46.75296619 -69.1022775 0.312909752 46.80735808 -69.06131914 0.391153485 46.68438136 -68.40644856 -0.524917185 47.68233472 -67.83951645 -0.362872481原创 2021-12-09 21:14:51 · 4530 阅读 · 9 评论 -
MATLAB 笔记整理(三)数据处理
--------------------------------三维矩阵运算A_std = std(A,[],3); %求第三维上的标准差原创 2021-12-06 13:07:52 · 318 阅读 · 0 评论 -
Matlab 不同数据长度,分组绘制箱型图(Boxplot)
因为成果图往往可视化,对于大量数据而言,箱型图是很好的选择,笔者默认读者都明白箱型图是怎么一回事儿,接下来分享自己的一些心得:我们期望的最后结果是这样的:如上图,当你有三个数据源,希望制作这三个数据源关于某一变量排序之后的箱型图(我的这个数据是:横轴表示年份,不同颜色的数据表示的是三个不同的蒸发产品,纵轴是流域个数,数据太大就不发上来了)先分享一个制作箱型图的链接实现长度不同多组数据散点箱...原创 2019-06-12 11:40:39 · 26636 阅读 · 1 评论 -
MATLAB 批量读取NC文件并转为TIF文件
因为课题处理30年的降雨和蒸发的遥感资料(.NC格式),而想要在Arcgis中处理要求的是raster格式的,所以需要批量转化为tif文件,所以在此分享自己改编之后的代码,可以简洁明了的实现这个过程:版本:MATLAB_2018bclc;clear;%% 批读取NC文件的准备工作datadir = 'G:\Global_P_ET\MSWEP_V2.2\'; %指定批量数据所在的文件夹...原创 2019-03-19 10:32:18 · 28981 阅读 · 97 评论 -
MATLAB nc文件转tif (可视化范例)
clc; %清除命令行窗口clear; %清除工作区filename='F:\Global_P_ET\ET\GLEAM\1982\E_1982_GLEAM_v3.2a.nc';nc_dump (filename); %展示文件信息%% 提取变量lon = ncread(filename,'lon')';原创 2020-09-15 12:13:15 · 3047 阅读 · 5 评论 -
MATLAB 如何绘制堆叠柱状图(stack)并更改所有子柱的颜色
希望做出来的图如下,即不同组的堆叠柱状图,并能调节每个子柱的颜色:以下是我的思路:第一步,学会绘制不同颜色子柱的堆叠柱状图:figure(1)X= [15.93,17.56; 17.20,13.26; 27.56,14.10; 32.89,14.47];hold oncolor_matrix = [1,0,0 %1号柱下部颜...原创 2020-01-02 09:25:10 · 34935 阅读 · 1 评论 -
MATLAB MK趋势检验
%% MK趋势检验function MKtrend = MKtrend(time_series)n = length(time_series);for i = 1:n s(i) = sum(time_series(i:end)>time_series(i)) - sum(time_series(i:end)<time_series(i));endS = sum(s);%s是正态分布,均值为零,方差:varS = n*(n-1)*(2*n+5)/18;%当n>1原创 2021-10-26 21:29:54 · 6456 阅读 · 2 评论 -
MALTAB websave(根据URL下载方法)以及 error 401(unauthorized)
第一部分:websave(根据URL批量下载方法)url = 'https://gpm1.gesdisc.eosdis.nasa.gov/data/GPM_L3/GPM_3IMERGDF.06/2000/06/3B-DAY.MS.MRG.3IMERG.20000601-S000000-E235959.V06.nc4';filename = 'E235959.V06.nc4';username = '1111111';password = '0000000';options = weboptions原创 2020-09-22 11:27:34 · 3156 阅读 · 4 评论 -
MATLAB 查找指定字符或字符串所在位置
找到指定字符串位置:k = strfind(str,pat)示例:str = 'Find the starting indices of substrings in a character vector';k = strfind(str,'in')k = 1×5 2 15 19 36 41拆解文件名(除去后缀)str = filename;pat = '_';newStr = extractBefore(str,pat);...原创 2021-09-27 20:23:19 · 22443 阅读 · 0 评论 -
MATLAB 为何 get(b,‘children‘) 是空集?
新版本中bar对象已经没有children属性详见:Bar属性原创 2019-12-31 23:10:03 · 1511 阅读 · 1 评论 -
MATLAB Mann-Kendall突变检验 (mk突变检验)
任务描述:对时间序列进行MK突变检验:将MK突变检验的代码封装为函数,直接调用即可,代码如下:%% MK突变检验function [UF,UB] = MKbreak(time_series)n = length(time_series);%% ---------------------------------正序列计算% 定义累计量序列s,长度=n,初始值=0;% s(k)记录的是第i个时刻(其中i<=k),其数值大于j时刻(其中j<=i)数值个数的累计数s = zeros原创 2021-09-16 16:57:57 · 33333 阅读 · 22 评论 -
MATLAB 根据经纬坐标生成点的shp文件或流域的边界shp文件
任务描述:有站点坐标,制作.shp文件用于arcgis后续处理[txt,~] = xlsread('C:\Users\DELL\Desktop\Works\数据整理.xlsx',12);location = txt(:,1:3);for i = 1:length(txt) %前面的部分为必要的字段 Point.Geometry = 'Point';%元素类型,Point,Line,Polygon等 Point.X = location(i,1);%坐标X 对应经度 P原创 2021-08-29 14:30:30 · 4102 阅读 · 2 评论 -
MATLAB Unsupported shape type PolygonM (type code = 25)
参考:https://gis.stackexchange.com/questions/40613/importing-shapefile-in-matlabMatlab使用shaperead读取shp文件时,出现错误Unsupported shape type PolyLineZ (type code = 13). headerTypeCode = readHeaderTypeCode(shpFileId,callingFcn);Unsupported shape type PolygonM (转载 2021-08-03 15:34:25 · 591 阅读 · 0 评论 -
MATLAB app designer 制作单选按钮的方法
任务描述:添加单选按钮控件后,如何根据用户不同的选项返回不同的值?selectedButton = app.ButtonGroup.SelectedObject;switch selectedButton.Text case '允许' A= 1; case '禁止' A= 0;endassignin('base','A',A); %将值返回到MATLAB工作区Hope this would bring you some inspiration原创 2021-06-09 11:10:55 · 4858 阅读 · 0 评论 -
MATLAB app designer/GUI清除工作区(workspace)的用法
近日在调试Matlba GUI程序时,因为不想退出程序后手动Clear All来清理,又需要在过程中对WorkSpace进行清理,否则会引用之前的结果导致错误,找了很多资料,国内的论坛什么的都说用Clear,Clear All这种,根本不行,会报错,因为过程中Clear将会导致定义的handles丢失,最后在Matlab的官方论坛中找到了答案:Clear Global Workspace from GUI Pushbutton“global (main)workspace” I assume/guess转载 2021-06-09 09:36:49 · 7280 阅读 · 0 评论 -
MATLAB app designer 如何设置背景图片
MATLAB app designer 本身是不带设置背景图片功能的,但是我们能够通过使用app.UIAxes或者app.button来实现,灵感来自于国外的网友:首先要注意的是,在app designer中发生控件重叠覆盖时,不同控件之间的图层层级关系是:新生成的控件会显示在旧空间上边,所以!!!要保证 坐标区(UIAxes)是最早插入的控件,这样坐标区就能显示在最下一层然后读入图片到app.UIAxes中就行了~~例如:Hope this would bring you some inspira原创 2021-06-08 23:03:28 · 10132 阅读 · 1 评论 -
MATLAB 设置msgbox若干秒后自动关闭
任务描述:在用app designer 时要不断使用msgbox给出反映,但窗口弹多了也很烦 所以设置自动关闭h = msgbox('成功!);start(timer('timerFcn',@(obj,~)close(h),'StartDelay',1,'stopFcn',@(obj,~)delete(obj)))参考阅读:msgbox(’’)之后如何自动关闭该窗口?Hope this would bring you some inspirations!...原创 2021-06-08 11:03:23 · 2469 阅读 · 0 评论 -
MATLAB 判断点(坐标)是否在.shp边界(不规则多边形)范围内
任务描述:我有流域的.shp边界以及气象站的坐标,想只用MATLAB就筛选出流域内的气象站点clcclearclose allshp_path = '5876_China_62505400_Boundary_Line.shp'; %.shp文件路径 Map = shaperead(shp_path); %读取.shp文件 xb = Map.X; %边界点的经度坐标yb = Map原创 2021-06-07 22:32:21 · 5072 阅读 · 1 评论 -
MATLAB app designer/GUI 学习笔记(一)
关于 全局变量定义使用global定义,例如global status但并不是说定义一次就一劳永逸,在每个子函数里如果需要调用该全球变量,必须重新定义一次,‘告诉’系统你在调用全局变量,例如function startupFcn(app) global boundary_status boundary_status = 0; %记录流域边界的状态,0代表没有输入边界,1代表输入了边界endfunction Button_3Pushed(app, event)原创 2021-06-07 20:10:39 · 2105 阅读 · 1 评论 -
MATLAB 下载Globsnow数据(命名不规律,需要自动获取网页数据链接)
第一步:将网页保存(html格式),然后用记事本打开(或者直接将文件后缀名改为txt)如图,红框内就是我们想要扒取的文件名手动删掉无用的前十行第二步:提取链接并用url函数开启下载%% 下载Globsnow数据 修改时间2021/5/12clcclearclose all%% 下载链接,将网页保存为txt后需要将前十行及最后一行删去(无用行)fid = fopen('Index of _swe_archive_v3.0_L3A_daily_SWE_NetCDF4.txt');tli.原创 2021-05-12 21:53:38 · 512 阅读 · 3 评论 -
MATLAB 换行读取text文件
任务描述:想要line by line读取每行内容,因为每行都有很多空格所以不知道怎么用textread实现(%s不顶事儿),所幸看到了fopen和fgetl函数fid = fopen('XXXX.txt');tline = fgetl(fid);k = 1;while ischar(tline) disp(tline); url_total{k} = tline; tline = fgetl(fid); k = k+1;endurl_total存储了所有行的原创 2021-05-12 21:51:11 · 1295 阅读 · 0 评论 -
MATLAB 线性插补缺省值
任务描述:站点降水有缺省值,所以需要线性插补空白数据写成了函数,可以直接调用%% 本函数用于线性插补缺省值function A = default_linear_interpo(A,B)%A是时间序列%B是缺省值,站点的缺省值是32700if A(1) == B A(1) = 0; %如果首位缺省,则赋值零endi = 2;while i<=length(A) if A(i) == B %发现缺省值则向后搜原创 2021-05-11 20:54:45 · 1944 阅读 · 2 评论 -
MATLAB 判断某数是否连续出现并超过一定次数
任务描述:我有一个站点观测降水的时间序列,需要判断降水观测是否连续出现10天以上的缺省值写成了函数,直接调用即可%% 本函数用于判断某数连续出现的次数超过某次,function result = default_test(A,B,count)&变量说明,A是时间序列,B是目标值,由于站点的缺省值默认为32700,因此B=32700,count是设定次数,我在使用时取了10result = 0;k= 0; %k是计数器for i = 1:len原创 2021-05-11 20:24:48 · 4305 阅读 · 2 评论 -
MATLAB 笔记整理(二)文件读写
--------------------------------Exel读写写入Exelxlswrite('Hello.xlsx',title,1,'A1')xlswrite('Hello.xlsx',txt,1,'A2')xlswrite('Hello.xlsx',name,1,'B2')--------------------------------遍历文件夹中指定类型文件path = 'F:\budyko_ds\Snowcover_extraction\Australia_116006\原创 2021-04-27 10:07:01 · 323 阅读 · 0 评论 -
MATLAB 笔记整理(一)绘图篇
--------------------------------调整窗口大小颜色图窗大小h = figure(1);set(h,'units','normalized','position',[0.1 0.1 0.5 0.5]); %两个0.1表示窗口左下角点在屏幕的位置,两个0.5表示窗口长宽,都是屏幕尺寸的比例图窗颜色set(0,'defaultfigurecolor','w') %将figure背景色设为白色----------------原创 2021-04-26 15:08:17 · 734 阅读 · 0 评论 -
MATLAB 密度图画法(hist3)
任务描述:已有散点图,想画密度图,效果如下网上很多方法都太麻烦了,废话不多说,直接贴代码:clcclearclose allfigure(1)X = [DI,Er]; %DI Er 是两个列向量N = hist3(X,'CdataMode','auto','Ctrs',{0:0.005:3 0:0.005:1.4}); % N的值正是密度% N是一个二维矩阵,Size大小由Ctrs决定,此处是280*600,因为0.005*600=3 , 0.005*280=1.4N原创 2021-04-08 01:41:36 · 9355 阅读 · 0 评论