
MATLAB
文章平均质量分 67
忠言睿长
从事3S技术与水文气象研究
展开
-
Matlab设置表table的表头
困扰的点是,我已经知道了表头名称, 如何批量的为表头命名,如果是直接把时间类型+数值数组放到一起,结果是所有数值类型公用一个表头。myTable=table(timeData,'VariableNames',{'时间'})经常涉及放入数据,读取数据,下面总结常用的知识点。tableTitleName={ '径流', '降水', '温度'};%生成间隔为24小时的矢量数组。% 也可是这样动态追加列,并命名。%追加了新的一列aa,数据为0。%直接引用第1行第5列的数据。%直接放数据,并指定表头。原创 2025-03-25 17:10:05 · 529 阅读 · 0 评论 -
对月降水做去趋势处理方法
对月降水做去趋势处理方法原创 2022-09-11 15:56:11 · 1576 阅读 · 2 评论 -
测试MATLAB的广义极值分布函数GEV
%% 测试MATLAB的广义极值分布函数GEVblocksize = 1000;nblocks = 250;t = trnd(5,blocksize,nblocks);%1000行250列,自由度为5的student t的随机数x = max(t); % 250 列最大值,也就是所谓的极值paramEsts=gevfit(x) %根据极值样本拟合最佳参数,参数1-3分别为:形状参数...原创 2019-10-25 00:19:44 · 10816 阅读 · 0 评论 -
Matlab读取shape文件并统计均值
%% 本代码实现功能是根据输入的shape文件(wgs84),对栅格数据进行统计均值。%思路:首先根据待统计的栅格数据的信息(范围,分辨率等),然后对应把shape文件生成%与栅格范围大小一致的mask文件,然后就可以矩阵之间运算了% 作者:李艳忠 地点:美国奥本大学图书馆 2019-4-23 21:07clc;clear;inputRasterFile='data\19980101.tif';%% 1.读取栅格文件[DataRaster,Ref]=geotiffread(inputRaster原创 2021-01-22 15:35:26 · 1289 阅读 · 0 评论 -
Matlab处理cell数据类型总结
mydata={'125.54','2020/11/20','我的大学'};%% 直接用cell2mat可以把数据出来aa=cell2mat(mydata)%% 如果是数字类型的cell,直接用str2num即可myNum=str2num( mydata{1} );%% 如果数据是类型是日期性的cell,有2种处理方式%第一种:myDateNum=datenum( mydata{2} );myYear=year(myDateNum);myMonth=month(myDateN...原创 2020-11-20 16:15:36 · 2614 阅读 · 0 评论 -
使用Matlab读取Grib2数据
办公室的一个伊朗的小姑娘咨询我如何读取grib2数据,于是检索一番后发现了解决方法。废话少说,很多时候需要读取气象数据的grib2格式,网上有已经写好的nctoolbox文件,直接拿来用就可以了。下载地址: https://github.com/nctoolbox/nctoolbox解压后如下图所示:代码运行环境要求:Matlab R2008a以上版本;Java 6+以...原创 2020-02-18 05:05:18 · 7204 阅读 · 3 评论 -
概率分布探讨-gamma分布或伽马分布
原创 2020-01-16 03:16:26 · 2263 阅读 · 0 评论 -
Matlab设置图例颜色条
maxValue=max(max(yearMean));h=imagesc(yearMean,[0,maxValue]);%set(h,'alphadata',~isnan(yearMean));title('土壤湿度'); %图的标题为土壤湿度set(gcf,'color','white');%设置背景色为白色colorbar...原创 2019-12-19 23:09:13 · 6506 阅读 · 0 评论 -
Matlab对于含有nan值矩阵求均值的误解
MATLAB中,对于矩阵,如果含有nan值(或者其他异常值)时,若对其中正常值如何进行求均值。如下a=[1 2 3 0; 2 3 1 NaN; 1 2 NaN 3; NaN 1 2 3];当我知道MATLAB中如nanmean函数时欣喜若狂,太好用了直接nanmean(nanmean(a))不就可以了吗?!!结果错了,大错特错,如果用手动计算,那么我们很容易知道结果是:24/13=...原创 2019-06-01 02:12:12 · 20900 阅读 · 6 评论 -
Matlab画密度函数分布图
clc;clear;data = randn(1000, 1);%随机产生一个1000行1列的服从标准正态分布的随机数random normal distribution[counts,centers] = hist(data, 7);%返回指定数据,特定间隔(如7)的各个分割区间的数量和中间值% 画频率分布直方图figurebar(centers, counts / sum(counts...原创 2019-04-01 12:50:00 · 14067 阅读 · 1 评论 -
Matlab连接数据库ACCESS数据库
为了存储数据方便与通用性,往往把数据存到数据库中,如access,sql server,db2,Oracle等,其中access数据算是比较轻量级的。那么,MATLAB如何读取access数据前先要设置ODBC连接,步骤如下: 要使用连接access数据库,首先需要配置ODBC数据源,方法是: 1.开始-控制面板-管理工具-数据源(ODBC),打开odbc资源管理器转载 2017-11-16 12:16:18 · 8369 阅读 · 1 评论 -
Matlab2012b licence失效解决办法
刚过了2017年光棍节两天,寻思搞点科研吧,处理点数据。打开MATLAB,让我注册,心想这不是so easy,重新加载一下license就行了,结果加载完告诉我“注册成功!”。悲催的是打开.exe还是让我注册,无奈卸了重装还是没有解决。 网上一搜,发现有哥们说license只到2017年11月11日,打开一看果不其然“INCREMENT Aerospace_Blockset MLM转载 2017-11-13 10:32:22 · 18897 阅读 · 14 评论 -
MATLAB常用函数记录
1、查找所有nan数据并赋新值 Data(isnan(Data))=-9999;2、获取指定目录下的所有指定类型文件列表 ncFilePath='E:\Sciencetific Data\ET Products\*.nc'; imageList=dir(ncFilePath);%获取该文件夹中所有tif格式的图像3、获取不带文件后缀的文件名 ...原创 2016-07-14 23:07:16 · 1375 阅读 · 0 评论 -
Matlab提示内存不足
当读取数据量过大时,matlab会提示当前数据过大,内存不足:解决方法是增加matlab内存大小:File-Perfereces-General-Java heap Memory 拖动,增大。 然后重启matlab即可。但本人发现就是调节到最大时,如果行数超过1000万条记录也是不行!原创 2017-08-15 12:43:39 · 7056 阅读 · 0 评论 -
Mann-Kendall突变检测(mk突变检测)
% Mann-Kendall突变检测 % 数据序列y% 结果序列UFk,UBk2%--------------------------------------------%读取excel中的数据,赋给矩阵y%获取y的样本数%A为时间和径流数据列A=xlswrite('数据.xls')x=A(:,1);%时间序列y=A(:,2);%径流数据列N=length(转载 2014-12-11 15:56:37 · 48373 阅读 · 32 评论 -
matlab的inpolygon用法简单介绍
%简单介绍inpolygon函数的用法L = linspace(0,2.*pi,6); xv = cos(L)';yv = sin(L)'; %创建一个-1~1的范围的点数组xv = [xv ; xv(1)]; yv = [yv ; yv(1)];%在原来数组基础上加上开始点,从而实现了首尾相连的多边形。x = randn(250,1); y = randn(250,1原创 2015-06-11 11:29:40 · 40700 阅读 · 1 评论 -
MATLAB实现pettitt检验
原创 2015-07-01 21:40:22 · 10003 阅读 · 5 评论 -
matlab里cell和char,字符串与字符数组
转载自:http://blog.sina.com.cn/s/blog_6a388c8f01015n04.html用importdata和textscan读取内容为字符串的txt,结果为cell型元胞组。我想把cell变成char型,然后就自然地想到cell2str,遗憾的是matlab中没有这个函数。就像没有str2cell一样。实现str2cell功能转载 2015-07-09 09:59:34 · 32699 阅读 · 0 评论 -
matlab绘图函数plot
1、设置绘图大小位置颜色标注subplot(1,8,2) %一共有1行8列个子图,这个语句画的图是第2个图 xlim([1979,2013])%限制x轴的最大最小范围。同理限制y轴可以通过ylim([0,600]) axis([xmin xmax ymin ymax]) %设置x,y轴的区间范围的。 set(gca,'Color','b') %设置当前绘图区域的背景设置为蓝色原创 2015-06-15 21:42:52 · 5122 阅读 · 0 评论 -
MATLAB计算宇宙外太阳辐射Ra并存tif格式
原创 2015-10-12 22:37:36 · 1907 阅读 · 1 评论 -
MATLAB读取.nc文件
clcclearncFilePath='E:\批处理读取NC文件-MATLAB语言\1NC文件\VIC_Output_China_evap_1952.nc';%% 显示结构% ncdisp(ncFilePath);%显示nc文件的所有结构,以便大概了解里面的内容% ncdisp(ncFilePath,'evap');%显示指定变量的内容,注意一定要是变量variable原创 2016-07-11 22:59:22 · 45417 阅读 · 8 评论 -
MATLAB读取nc文件写成TIF文件arcgis统计错误 -不能正常显示统计信息,空值处理
问题描述:MATLAB读取nc文件很方便,然而arcgis或者ENVI等地理软件往往是GeoTif。本文在MATLAB读取nc文件并写成tif后发现能在arcgis中正常显示,黑色区域显示的为NoData,感觉一切正常。但是统计信息中的mean和stdeve显示是-1.int, 如下图所示:有人说,既然arcgis显示没问题,那就行了呗。不然,如果统计信息有误,那么你在进行区域统计的时候就原创 2016-07-15 10:26:50 · 6365 阅读 · 4 评论 -
MATLAB海量数据读取access数据到excel并保存为shapefile文件
(1) 通过access数据库通过联立查询并生成新表由于access只限制5万条记录,所以要通过MATLAB读取所有数据并保存到xlsx中去。SELECT * INTO AA IN 'E:\aa\aa.accdb'FROM (SELECT MetroSta742Info(modify).*, MetroStaDataPET_2013.*FROM MetroStaDat原创 2016-07-31 20:10:58 · 4390 阅读 · 0 评论 -
MATLAB画双轴-倒立降水柱状图
% P=fix(rand(1,400)*500); %产生所需数据% Qobs=fix((rand(1,400)+10)*5);% Qsim=Qobs-1;function [NC,WBE]=Nash(Qobs,Qsim,P)[m,n]=size(Qsim); if nargin==3 %如果输入参数为3个 figure; [AX,H1,H2]=p原创 2016-07-20 21:23:40 · 4009 阅读 · 2 评论 -
Matlab读取带有地理信息的图像
MATLAB 遥感影像的读写操作,带空间坐标信息!filepath=''E:\Sciencetific Work\北洛河_状头.tif';'[Data, R] = geotiffread(filepath); %读取带有空间信息的地理数据,返回数据,和地理栅格空间参考信息spatialref.GeoRasterReferencei转载 2016-10-18 17:21:43 · 20473 阅读 · 1 评论 -
Matlab 归一化函数premnmx
函数目的是把数据处理成[-1,1]之间,算法是:如a=[2,4,3,5],那么计算过程就是:2*(2-2)/(5-2)-1=-1;2*(4-2)/(5-2)-1=1/3=0.6666;2*(3-2)/(5-2)-1=-0.66662*(5-2)/(5-2)-1=1;原创 2016-12-13 15:28:54 · 50384 阅读 · 6 评论 -
Matlab读取txt文本文件总结
读取文本文件的方法很多,如load, textrad等,每个方法读取都有自己的规则,本人根据经验总结一二:(1)、load 方法加载的必须是纯数字的,如果中间夹杂了字母或者汉字,则会报错。如下: txtFullPath='E:\Test\S201705041126455898100.txt'; %如果有非数字存在 data=load(txtFullPath);原创 2017-05-05 09:40:55 · 5114 阅读 · 0 评论 -
MatLab估算数据序列斜率
x=[1 1.4 1.6 2 2.4 2.6 3 3.6 4 4.6 5 6]; y=[0.264241 0.408167 0.475069 0.593994 0.691559 0.732615 0.800852 0.874311 0.908422 0.94371 0.959572 0.982649]; A=polyfit(rt,y,2) z=polyval(A,rt); plot原创 2014-12-11 16:54:25 · 10309 阅读 · 0 评论