
MATLAB
基本语法书与常用函数说明
ddd...e_bug
以写脚本为主,偶尔也写点别的
但,无论如何数学是要坚持学的
展开
-
克里金插值(Kriging interpolation)
原理可参考该文件:克里金(Kriging)插值的原理与公式推导 - xg1990matlab code可参考:Ordinary Kriging - File Exchange - MATLAB CentralSome notes:原创 2024-10-16 12:21:12 · 579 阅读 · 0 评论 -
Matlab Geomap参考
待更....参考资料汇总。原创 2023-03-05 02:48:13 · 326 阅读 · 0 评论 -
正态分布、对数正态分布参数(mu, sigma)与数据本身均值方差(m, v)的关系
对数正态分布参数 mu 和 sigma,与数据本身均值m和方差v之间存在如下关系:利用如下MATLAB代码,对上述关系进行了验证。clcclearclose all% 利用对数正态分布参数mu, sigma生成随机数mu=1 sigma=0.3 a=lognrnd(mu,sigma,1000,1);% 利用histfit函数,统计对数正态分布参数mu, sigmafigurehf=histfit(a,20); % 20表示将数据均分为20pd = fitdist(a,'原创 2022-05-31 06:47:38 · 15785 阅读 · 2 评论 -
Matlab 相对路径
当前路径,及当前文件夹: load(a);在下一级路径下: load(./a);在上一级路径下: load(../a);(a为文件名)原创 2022-05-20 20:10:04 · 4814 阅读 · 0 评论 -
MATLAB 提取文件名中数字
首先,利用dos,提取文件名为txt文件% TXT文件输入如下代码,并将文件后缀改为 .batdir *.*/b> list.txt.然后,利用matlab提取数字clc;clear;A=importdata('list.txt');for i=1:length(A) a=num2str(A{i}); s=a(isstrprop(a,'digit')); ss(i,1)=str2num(s);end...原创 2022-05-11 06:08:04 · 2591 阅读 · 0 评论 -
MATLAB 数据频数统计
1. 利用find函数对特定区间进行统计x = 0:10; % 生成数组k1 = find( x >= 0 & x < 2 ); % 查找大于等于0小于2的元素的数组下标k2 = find( x >= 2 & x < 5 ); % 查找大于等于2小于5的元素的数组下标k3 = find( x >= 5 & x <= 10 ); % 查找大于原创 2022-04-15 18:22:47 · 3744 阅读 · 0 评论 -
MATLAB之out of memory的问题
一般而言,可通过如下两个方法简答解决:(1)不储存中间变量,且每次循环,清空变量;(2)进入循环前,预设矩阵大小。如,a=zero(1000,1)------- 另参考如下资料 ------[1]Matlab使用过程中内存不足问题的总结_xiaojidan2011的博客-优快云博客_matlab内存不足,请键入help memory[2]matlab 内存管理 清理内存_天天_的博客-优快云博客_matlab清理内存...原创 2022-03-28 22:48:00 · 520 阅读 · 0 评论 -
MATLAB 利用元胞数组输入‘文本’
a={'qqq' 'www' 'eee'};b=a{1};原创 2022-03-26 06:07:19 · 859 阅读 · 0 评论 -
MATLAB save函数
官方文档:Save workspace variables to file - MATLAB savesave()函数保存成mat文件 ● save:将工作区中的所有变量保存在当前工作区中的文件中,文件名为 matlab.mat,MAT文件可以通过load函数再次导入工作区,MAT函数可以被不同的机器导入,甚至可以通过其他的程序调用。 ● save('filename'):将工作区中的所有变量保存为文件,文件名由filename指定。如果filename中包含路径,则将文件保存...原创 2022-03-25 04:58:34 · 14082 阅读 · 0 评论 -
MATLAB 稀疏矩阵表示和还原
a = diag(1:6) % Create diagonal matrixb = sparse(a) % Convert into sparse matrixc = full(b) % Convert sparse matrix back into full matrix原创 2022-03-23 22:25:46 · 1327 阅读 · 0 评论 -
MATLAB画Correlation plots
用R可以利用 corrplot 函数简单得到下图,如何利用MATLAB实现呢?代码复制自 Fancy Correlation Plots in MATLAB% sample correlation matrixr = normalize(randn(10, 10), 'range', [-1, 1]);for i = 1:size(r, 1) r(i, i) = 1;end% labelslabels = "variable" + (1:size(r, 1));..原创 2022-03-23 18:36:59 · 2492 阅读 · 0 评论 -
MATLAB histfit函数之正态分布拟合柱状图
MATLAB的 histfit 函数,可以简单、粗暴的得到数据的柱状图、拟合曲线。r = normrnd(10,1,100,1); % 生成随机数figurehf=histfit(r,20); % 20表示将数据均分为20段pd = fitdist(r,'Normal') % 获得拟合曲线的参数,均值和标准差get(hf(1)) % properties of the histogramget(hf(2)) % properties of the normal curve% 柱状图数原创 2021-02-20 09:21:52 · 14547 阅读 · 3 评论 -
MATLAB nan替代为0或删除
data(isnan(data)) = 0 将data中的nan替换成0 data(isnan(data)) = [] 删掉data中的nan原创 2021-02-19 00:35:53 · 9342 阅读 · 1 评论 -
MATLBA interp1报错 The grid vectors must contain unique points.
报错原因:时间上出现了两个完全一样的时间点方法:利用下面代码把相同的时间点取代[x, index] = unique(x); yi = interp1(x, y(index), xi);原创 2021-02-04 00:55:22 · 1551 阅读 · 0 评论 -
MATLAB 插值函数运用 - interp1
函数格式x1 = interp1(t,x,t1,method);输入参数:t - 原信号时间轴;x - 原信号幅值;t1 - 插值信号时间轴;method - ‘Nearest’邻近点插值;‘Linear’线性插值;‘Spline’三次样条插值;‘Pchip’立方插值。默认情况为线性插值!输出参数:x1 - t1对应的信号幅值;示例代码clcclear% 原信号t=0:1:5;x=sin(t);% 插值t1=0:0.1:5;x1_n = i..原创 2020-07-10 19:49:50 · 3319 阅读 · 0 评论 -
MATLAB reshape函数之向量的重新排列
举例:注意:reshape函数列优先,改问题可以通过向量转置,顺利解决 reshape的矩阵的行列数需要整除 [] 的使用,设置行数,让列数默认;如b=reshape(A,4,[]),结果与上面一致原创 2021-01-18 00:00:20 · 1846 阅读 · 0 评论 -
MATLAB 不同格式数据的输入和输出方式
输入txt文件数据A=importdata('list.txt')输入Excel文件数据A = xlsread('data.xlsx')原创 2021-01-17 23:14:51 · 1050 阅读 · 0 评论 -
MATLAB之常见随机变量分布的PDF和CDP
1. 概念与函数表达式参考“随机变量概率分布函数汇总-离散型分布+连续型分布”,了解不同随机变量分布的定义及函数表达式。2. MATLAB函数3. 分布的CDF和PDF图形参考“MATLAB概率统计函数(1)”注意理解各随机变量分布的本质及其适用性!注意参考孤独的猫“MATLAB”专栏,博主写的特别优秀,希望不会删掉!与本文相关的内容如下:(1)MATLAB概率统计函数(1)(2)MATLAB概率统计函数(2)(3)MATLAB概率统计函数(3)(4)MATLA.原创 2020-11-26 10:33:01 · 1557 阅读 · 0 评论 -
MATLAB waitbar函数设置进度条及查看计算时长
待更...参考资料(1)matlab添加进度条(waitbar)(2)matlab 进度条/waitbar 显示运行进度原创 2020-10-06 00:44:52 · 2646 阅读 · 0 评论 -
MATLAB循环语句注意点
对于fo循环和while循环均适用:1)for语句中赋值问题%理解for循环clccleara=1;m=3;for i=1:m %理解此处的m不是向量,是循环时的某一个固定值 b(i)=a*i %得到的b值保留前一个循环中计算的值。是一个随着i变化的向量,loop1时向量中有1个元素;loop2时有2个元素,分别是loop1中值和loop2中原创 2017-09-13 20:24:30 · 16951 阅读 · 2 评论 -
MATLAB GUI 转成 .exe
目录新方法:利用“deploytool”,一步到位老方法:整个过程分两步进行第一步:合并GUI下的两个文件第二步:转成.exe注意安装运行环境MATLAB GUI写交互式界面的书写,可参考前文“MATLAB GUI创建图形用户界面/交互界面”新方法:利用“deploytool”,一步到位老方法:整个过程分两步进行第一步:合并GUI下的两个文件将 “.fig” 和 “.m” 文件合并成一个“.m ”文件,核心如下图所示,是将.fig文件另外存为matlab.原创 2020-08-08 16:43:20 · 1358 阅读 · 2 评论 -
MATLAB 快速傅里叶变换(fft)结果为什么是复数?
文章核心是两部分:(1)从直观和本质的角度,说明为什么快速傅里叶变换的结果是复数;(2)详细说明了MATLAB中fft函数的运用方法,并给出了fft幅度谱的求解代码。但要真正了解快速傅里叶变换,核心是理解“FFT的计算原理”!!!目录一、直观解释二、本质原因之FFT的计算原理 (关键)三、MATLAB中fft函数说明函数形式参数说明四、 FFT求频率-幅值谱的MATLAB 代码一、直观解释第一,从定义式上看,积分号里含有复数,积分结果是复数;第二,从傅立叶变原创 2020-07-11 00:45:18 · 25691 阅读 · 1 评论 -
MATLAB 判断字符串是否一致
函数形式:strcmp(a,b)当字符串完全一致,则返回1,否则为0;实例原创 2020-06-30 01:29:44 · 7546 阅读 · 0 评论 -
MATLAB 生成均匀分布、正态分布、对数正态分布随机数
1. 均匀分布函数形式: x=rand(n,m)n - 行数 m - 列数 生成在0到1之间,满足均匀分布的随机数!实例2. 正态分布函数形式 x=randn(n,m)n - 行数 m - 列数 生成均值为0,方差为1的标准正态分布实例3. 对数正态分布函数形式 x=lognrnd(mu,sigma,a,b)mu- 对数值的均值(mean of logarithmic values);mu = log((m^2)/sqrt(v+m^2)); (m - ..原创 2020-06-27 19:40:01 · 67882 阅读 · 6 评论 -
MATLAB 短时傅里叶变换函数运用 - spectrogram
函数形式:spectrogram support documents原创 2020-07-09 23:39:19 · 4358 阅读 · 0 评论 -
MATLAB 画正态分布和对数正态分布的概率密度函数
正态分布函数形式:y=normpdf(x,mu,sigma)x - x轴数据,如 x=-10:0.01:10; 注意正态分布,正负对称!mu - 均值,默认为0;sigma - 标准差,默认为1;实例x=-10:0.01:10;y=normpdf(x,0,1);plot(x,y);对数正态分布函数形式:y=lognpdf(x,mu,sigma)x - x轴数据,如 x=0:0.01:10;mu - 均值,默认为0;sigma - 标准差,默认为1;..原创 2020-06-23 22:55:24 · 17153 阅读 · 0 评论 -
MATLAB 向量元素对照函数 ismember
格式:c=ismember(a,b)b为参照组,a为分析组,即用a中的元素与b对比,如果存在则为1,不存在则为0。c向量长度与b一致!实例 1实例 2原创 2020-06-06 03:15:07 · 388 阅读 · 0 评论 -
MATLAB GUI创建图形用户界面/交互界面
目标:根据自己写的函数,写一个交互式界面。操作步骤第一步:命令窗口输入guide,得到 “.fig” 和 “.m” 文件第二步:参考资料[1]Matlab GUI界面设计原创 2020-05-20 01:04:54 · 18272 阅读 · 3 评论 -
MATLAB 两个向量的差集 setdiff(a, b)
setdiff(a,b)Example:原创 2020-04-24 23:21:43 · 2152 阅读 · 0 评论 -
MATLAB switch-case-otherwise用法实例
主要注意代码格式!n = 1;switch n case -1 disp('negative one') case 0 disp('zero') case 1 disp('positive one') otherwise disp('other value')end...原创 2020-04-21 14:06:50 · 2458 阅读 · 0 评论 -
MATLAB行向量顺序颠倒函数 - fliplr
fliplr(A)只可用于行向量,列向量不行!实例:(1) 行向量(2) 列向量原创 2020-04-20 15:04:23 · 18863 阅读 · 2 评论 -
MATLAB 导出矢量图
一般而言,edit > copy figure, 然后,ctrl+v到word,即可得到高清矢量图。若不行,检查copy options中的设置是否和下图一致。特别注意clipboard format的设置。...原创 2019-12-08 23:15:17 · 9248 阅读 · 0 评论 -
Hilbert变换求信号的包络线及MATLAB代码
Hilbert变换解释Hilbert变换从公式上看,是信号与1/(pi*t)的卷积。此外,可以从“线性系统”,“调幅-调频”等角度思考,具体参考如下链接!--------------------------------------Hilbert变换理解-----------------------------------------------------【1】浅显易懂版h...原创 2020-05-12 21:47:53 · 23974 阅读 · 4 评论 -
MATLAB loop语句中输出每次长度不一样的循环结果
for j=2:lev wpt=wpdec(vert,j,wname); for m=1:2^j E(m)=norm(wpcoef(wpt,[j,m-1]),2); end E_total=sum(E); for m=1:2^j p(m)=E(m)/E_total*100; end % 输出向量原创 2017-09-18 16:49:54 · 1404 阅读 · 0 评论 -
MATLAB 矩阵运算示例
MATLAB矩阵运算clccleara=[1;2]b=[3;4]c=[5;6]d=[a b c]e=sqrt(a.*a+b.*b+c.*c)f=sqrt(d.*d)g=a.*a+b.*b+c.*c原创 2018-02-09 17:50:35 · 904 阅读 · 0 评论 -
MATLAB plot 最基本操作命令
基本命令figure; subplot(231) %按照横2竖3的方式分割画布,画布顺序水平排列。 plot(x,y,'-.'); % 设置“线型” plot(x,y,'r','linewidth',1); % 设置“线颜色”,“线宽=1” hold on %同一坐标系下画多个图形 ylim([0,500]); ...原创 2018-11-10 20:39:15 · 3921 阅读 · 0 评论 -
MATLAB 曲线与坐标交叉点
【转】MATLAB学习笔记:求导数https://blog.youkuaiyun.com/u014147522/article/details/78896384目的:找到曲线与坐标的交叉点,数学含义为,y=0或者x=0。根据数学意义写代码如下:若y=f(x),找到所有y=0的点既可找到交叉点,即:a=find(y==0);% 不能识别交叉点,因为数据往往为离散信号,在将信号进行离散化...原创 2018-11-24 18:36:58 · 4382 阅读 · 0 评论 -
MATLAB 协方差 [cov] 和相关系数 [corrcoef] 说明
A,B为两个长度相同的向量求协方差S=cov(A,B);b和c数值上是相等的。求相关系数R=corrcoef(A,B)数值上,f和g是相同到。相关系数存在许多种类,上述corrcoef 指 pearson correlation coefficient。扩展阅读 1【copy from:https://www.cnblogs.com/sansha...原创 2018-11-26 20:36:03 · 18111 阅读 · 3 评论 -
MATLAB 循环语句中,输入向量长度不一时,被赋值矩阵语法
for i=1:3 a=1:i k=length(a) %a的长度 b(i,1:k)=a %输入信号向量大小不一时!enda =1b = 1a =1 2b = 1 0 1 2a =1 2 3b = 1 0 0 1 2 ...原创 2018-12-17 16:42:30 · 1306 阅读 · 0 评论 -
matlab 嵌套循环
循环嵌套带嵌套的循环一般为两重,举例1:disp('一个简单的二重for循环');for ii=1:3 for jj=1:3 result = ii *jj ; fprintf(' %d * %d = %d \n',ii,jj,result); end end对于以上分析:第一:双重循环外部循环比内部循环慢。外部循...转载 2018-12-23 17:42:58 · 14928 阅读 · 0 评论