你可真搞笑
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Matlab更改工作路径的方法及思考
在运行matlab的时候,我们往往需要更改工作路径,此时就经常用到cd函数,其调用方式如下:cdcd newFolderoldFolder = cd(newFolder)然而使用cd函数往往要求我们写出完整的工作路径,如下所示:% Matlabcd 'C:\Matlab\Process'大部分情况下这样使用都没有问题,可是一旦我们需要频繁地更改工作路径时,每运行一次就需要改一次完整的工作路径,是不是就很麻烦呢?那有什么方法可以最小化工作量呢?此时就需要使用for循环结合fullf原创 2022-04-10 13:57:42 · 3066 阅读 · 0 评论 -
Matlab中limit函数的使用与思考
在matlab中limit函数用于求解符号表达式的极限,例如以下链接中limit函数用于求解级数无穷加和问题:(4条消息) Matlab中求解级数无穷加和的方法及思考_warnerchang的博客-优快云博客https://blog.youkuaiyun.com/weixin_43568289/article/details/123877942?spm=1001.2014.3001.5501本文将更深入的介绍limit函数及其注意事项,limit函数的调用方式有如下几种:% Matlab% f为符号表达原创 2022-04-09 22:00:00 · 2645 阅读 · 0 评论 -
Matlab中如何求解隐式常微分方程
在matlab中求解隐式常微分方程,通常有两种方法,一种是使用matlab中的内嵌的ode15i等求解隐式微分方程的函数,另一种是仍使用matlab中求解常微分方程的显式函数,如ode45等等。但是小编想要表达的绝不是这两种方法,而是这两种方法之间的差异:一、ode45使用这种方法求解隐式微分方程的思路就是结合其他函数求解隐式方程,例如fzero等等。以求解如下隐式方程为例:可以发现这个式子很复杂,没有显式式子,因此只能使用隐式函数求解。代码如下所示:% Matlab%% ode4原创 2022-04-01 22:28:13 · 4076 阅读 · 0 评论 -
Matlab中求解级数无穷加和的方法及思考
在数学问题中,我们经常会遇到求解一个级数负无穷至正无穷之间的求和的问题,本文针对这一问题,给出了两种解决的思路:分别为数值求解及解析求解方法。一、数值求解方法使用数值求解方法的原理就是将无穷大看成一个有限却极大的数,比如1000000,因为可以求和的数列应该是收敛的,所以当逐渐增加求和的项数时,计算得到的数值应该趋于一个定值。使用这个原理我们就可以计算一个级数的和,如下代码所示:% Matlab% numerical methodStart = 2;原创 2022-03-31 22:35:26 · 5453 阅读 · 0 评论 -
Matlab中修改plot曲线的透明度
查阅很多资料都会发现,matlab中plot函数不支持修改曲线透明度的选项,但是小编在此提供一个方法,就是对曲线的Color属性进行修改。例如如下代码:% Matlabx = 1:10;a = plot(x);运行后可以发现a的Color属性值如下所示:% Matlaba = Line - 属性: Color: [0 0.4470 0.7410] LineStyle: '-' LineWidth: 0.5原创 2022-03-30 00:06:34 · 22449 阅读 · 7 评论 -
Matlab中为什么会出现“未定义与 ‘function_handle‘ 类型的输入参数相对应的运算符‘...‘ ”
想必很多小伙伴在使用matlab计算函数的解时经常会遇到如下问题吧:未定义与 'function_handle' 类型的输入参数相对应的运算符 '+'未定义与 'function_handle' 类型的输入参数相对应的运算符 '-'未定义与 'function_handle' 类型的输入参数相对应的运算符 '/'未定义与 'function_handle' 类型的输入参数相对应的运算符 '*'...这是因为我们在定义函数时时常会使用匿名函数,而匿名函数返回的是句柄,而不是一个函数的值,从而原创 2022-03-17 21:31:00 · 20013 阅读 · 0 评论 -
Matlab中gradient与diff的差别
相信很多小伙伴都喜欢使用diff函数来求解两个数之间的差值,常见的场景有求解离散数据的N阶导数,比如,我们此时有速度的离散数据,和数据之间的时间间隔,那么我们对其求差值再除以时间间隔即可求得加速度数据。但是使用什么函数进行差值,小编曾使用过diff和gradient两个函数,今天小编就仔细讲讲自己使用的体会吧。一、gradient函数gradient函数直接用于求解数值偏微分,例如一个双变量的函数微分如下所示:gradient函数使用方法如下:% Matlab%% Gradient原创 2022-03-17 14:16:38 · 4872 阅读 · 0 评论 -
Matlab中fit拟合结果你不知道的用法
想必很多小伙伴除了会使用cftool进行曲线或者曲面拟合外,还经常使用fit函数指定函数形式对数据进行拟合,此时我们往往会得到一个fitresult,大家在命令行窗口输入firresult,往往只会看见一些拟合式子的系数,如下代码所示:% Matlab% fit的常见用法load censusfitresult = fit(cdate,pop,'poly3','normalize','on');fitresult得到的结果如下:% Matlabfitresult =原创 2022-03-16 09:21:23 · 5808 阅读 · 1 评论 -
Matlab中的ismember和contains傻傻分不清
一、ismember函数该函数用于判断数组集A是否被数组集B包含。常见用法如下:% Matlab%% 判断B中是否含有A中的元素,并返回共有元素在A中的逻辑矩阵A = [5 3 4 2];B = [2 4 4 4 6 8];Lia = ismember(A,B)%% 其还可以用于判断两个table类型数据A和B是否有共同的行A = table([1:5]',['A';'B';'C';'D';'E'],logical([0;1;0;1;0]));B = table([1:2:原创 2022-03-14 20:56:41 · 4153 阅读 · 0 评论 -
Matlab中删除字符数组或字符串数组中的首尾字符
大家想要删除字符数组或者字符串数组的首尾字符时首先想到的就是strtrim函数,但是这个函数有限制,就是其只能删除首尾的空白字符,而当我们想要删除其他特定字符时,就无能为力了。例如如下代码,strtrim函数很好的删除了(连续)空白字符,但是不能删除特定字符,比如星号等等。% Matlabstra = ' hello world ';strb = " hello world ";strc = " hello world *";Fa = strtrim(stra);Fb =原创 2022-03-12 13:44:42 · 8159 阅读 · 0 评论 -
Matlab中字符数组与字符串数组的区别
想必很多小伙伴经常需要处理字符数据吧,此时就要仔细区别字符数组和字符串数组!!!字符数组是使用单引号括起来的数组,类型为char,一个字符在内存中占用两个字节;而字符串数组在matlab R2017a中引入,使用双引号括起来的数组,也可以使用string函数将字符数组转换为字符串数组。不过小编在这建议使用字符数组进行数据处理,不建议采用字符串数组。理由如下:% Matlab% 字符数组>> str = 'string';>> str1 = 'stringstri原创 2022-03-11 14:18:50 · 1845 阅读 · 0 评论 -
Matlab中复杂text文档的读取
很多时候小伙伴们都会遇见既包含有文字字符又包含有数值的text文档,那么往往我们只需要对数值部分进行处理,文字字符的存在对text文档的读取造成了不小的困难,今天小编带大家一起解决这个问题:示例文件如下:% Test.txt窗口 1轨迹 1通道 1参数 S11扫描类型 线性扫描起始频率 110.000GHz终止频率 170.000GHz扫描点数 201数据格式 对数(dB)======================频率(Hz) 对数(dB)110000原创 2022-03-08 09:27:56 · 1183 阅读 · 0 评论 -
Matlab中如何限制计算得到的角度范围为0到360度
在matlab中计算得到的大部分角度的范围为-180~180度,那么如果我们想要的角度数据范围是0~360度,我们该如何操作呢?此时我们需要使用mod函数,对获得的角度数值进行映射,代码如下:% Matlabx = [1 0 -1 0];y = [0 1 0 -1];d = atan2d(y,x)% 对数据进行映射dr = mod(d,360)获得的结果如下:% Matlabd = 0 90 180 -90dr = 0 9原创 2022-03-07 10:20:17 · 10195 阅读 · 0 评论 -
Matlab中使用solve函数得到root形式解决方案二
之前在Matlab中solve函数得到的解出现root的情况_warnerchang的博客-优快云博客_matlab结果出现roothttps://blog.youkuaiyun.com/weixin_43568289/article/details/121342712#comments_20216268中提到,可以换用vpasolve来求解以避免出现root形式的根,但是后续根据小伙伴的反应,即使换用vpasolve也会出现仍存在root形式根的情况,今天提供一个附加方法:solve函数出现root形式根的原创 2022-03-05 22:59:45 · 6473 阅读 · 2 评论 -
Matlab中dir函数使用小技巧
想必很多小伙伴在matlab中对文件进行批处理时经常会使用dir函数吧,dir函数用于列出文件夹中的内容。使用语法如下:% Matlabdir % 列出当前文件夹中的文件和文件夹,当然调用方式也可以是listing = dirdir name % 列出当前文件夹中与name同名的文件和文件夹,不支持调用方式listing = dir namelisting = dir(name) % 列出当前文件夹中与name同名的文件和文件夹当原创 2022-02-27 10:43:43 · 11386 阅读 · 4 评论 -
Matlab中fit函数的局限以及其解决方案
在处理数据时,相信许多小伙伴都使用过fit函数来对数据进行拟合吧,但是fit函数只能用于曲线或者曲面的数据拟合,对于更复杂多元非线性方程则无能为力,例如如下代码:% Matlabx1=value_2m(:,4); %sstx2=value_2m(:,3); %kd490x3=value_2m(:,2); %cholerx4=value_2m(:,5); %timey =value_2m(:,1)%pco2ft = fittype( @(a,b,c,d,ab,ac,ad,bc,bd,cd,原创 2022-02-26 12:09:42 · 2707 阅读 · 0 评论 -
Matlab工具包cftool中图像上曲线数据点输出方法
我们经常会使用cftool工具箱进行曲线或者曲面的拟合,那么我们想要获得拟合后的曲线或曲面的数据该如何操作呢?小编首先以拟合正弦函数曲线为例:打开cftool,并选择相应的变量,以及拟合方程的类型,如下图所示:可以看见该工具箱给出了拟合的曲线,即蓝色线条所示。此时我想要得到绘制该蓝色线条的数据点,该如何操作呢?很多小伙伴想到的办法可能是将拟合好的模型保存到工作区,再重新计算得到对应的数据点,但是这种方法未免太麻烦,如下图所示。此时工作区会出现三个变量:fittedmodel,goodne原创 2022-02-24 12:39:14 · 6735 阅读 · 0 评论 -
Matlab中fft函数的一点思考
很多时候,读者们为了提高fft函数的计算速度,都会将数据个数处理成2的整数次幂个。例如如下代码:fs = 100;%时域抽样间隔ts = 1/fs;t = [-1:ts:1];x1 = normpdf(t, 0, 0.07);x2 = unifpdf(t,-0.2,0.2);%绘制时域波形subplot(311)plot(t,x1);title('正态分布密度函数时域图像');subplot(312)plot(t,x2);title('矩形分布密度函数时域图像');N =原创 2022-02-11 19:43:11 · 954 阅读 · 0 评论 -
Matlab中求取置信区域
Matlab中求取置信区间_warnerchang的博客-优快云博客_matlab求置信区间一、概率密度函数、累计分布函数、逆累积分布函数在数学中,连续型随机变量的概率密度函数(在不至于混淆时可以简称为密度函数)是一个描述这个随机变量的输出值,在某个确定的取值点附近的可能性的函数,如下图1所示,一个变量可以有不同的概率密度函数形式,最简单的如高斯分布。图1 不同的概率密度分布函数在实际应用中,往往确定一个变量的概率密度函数形式是最重要的!!!否则后续分析的结果都有可能是错误的。累计分布函数是概率密度函数的原创 2022-02-11 14:19:08 · 5047 阅读 · 0 评论 -
Matlab工具包InterX分享
InterX函数可以用于求解曲线之间的交点,同时还可以用于求解曲线的自交点。其函数源代码如下:function P = InterX(L1,varargin)%INTERX Intersection of curves% P = INTERX(L1,L2) returns the intersection points of two curves L1 % and L2. The curves L1,L2 can be either closed or open and are desc原创 2022-02-09 15:34:55 · 929 阅读 · 0 评论 -
Matlab中function定义的函数与匿名函数区别一
匿名函数可以直接得到函数句柄,而function定义的函数需要使用@运算符得到函数句柄。示例一:% Matlabf = @(x)(exp(-0.2*x).*sin(x+2)-0.1);fplot(f,[0 10]);x1 = fzero(f,1);x2 = fzero(f,4);x3 = fzero(f,7);%% New versionfplot(@f,[0 10]);x1 = fzero(@f,1);x2 = fzero(@f,4);x3 = fzero(@f,7);原创 2022-02-04 22:25:28 · 1803 阅读 · 0 评论 -
Matlab中max函数详解
一、基本用法max函数用于获得单个向量中的最大值,示例如下:% MatlabA = 1:5;Am = max(A);但是max函数还有另一种用法,那就是对两个向量逐元素比较大小,然后返回两个元素之间的较大值,示例如下:% MatlabA = 1:10;B = 2:11;C = max(A,B)上述代码得到的结果如下:% MatlabC= 2 3 4 5 6 7 8 9 10 1原创 2022-01-28 20:00:03 · 19889 阅读 · 0 评论 -
Matlab中的sym、syms、symvar、argnames、formula、symfun、matlabFunction
一、sym二、syms三、symvar四、argnames五、formula六、symfun有很多小伙伴都使用下面的方法来创建一个符号函数:% Matlabsyms f(x,y)f(x,y) = x.^2 + sin(y)frs = f([2 3 4], [5 6 7]) % 注意x和y的输入实参数目要一致,得到的为sym类型% 使用double函数将结果转换为数值frd = double(frs)但是上面创建原创 2022-01-15 21:13:40 · 5877 阅读 · 0 评论 -
Matlab中printsys、printmat以及poly2str
一、printsys顾名思义,将一个系统的参数打印出来。三种调用形式如下:% Matlabprintsys(A,B,C,D,ULABELS,YLABELS,XLABELS)printsys(A,B,C,D)printsys(NUM,DEN,'s')目前,还没有明白ABCD是代表啥,不过,ULABELS,YLABELS,XLABELS分别代表输入、输出以及状态变量。最后一种调用形式,用于打印传递函数。示例如下:% MatlabNUM = [1 0 2];DEN = [2原创 2022-01-09 22:45:31 · 4661 阅读 · 0 评论 -
Matlab中linspace函数和logspace函数详解
想必大家在生成等差数列的时候,经常会使用冒号运算符吧,除了使用冒号运算符,我们还可以使用linspace和logspace函数,今天小编就给大家详细讲讲这两个函数。一、linspace函数调用的形式如下:% Matlaby = linspace(x1,x2)y = linspace(x1,x2,n)x1代表数列的起始位置,x2代表数列的终止位置。n代表要生成的元素个数,如果不给定n的值,则默认生成100个元素;给定n值,则每个元素差值为;如果n值为1,则返回x2,n值为0或者负数,则原创 2022-01-07 10:44:06 · 14720 阅读 · 0 评论 -
Matlab中快速去除字符串中的元音字母
其实字符串可以看作一个向量,每一个字符都有一个对应的ascii值,因此在处理字符串时也可以采用常用的数值数组函数。今天小编想要介绍的内容是如何快速地去除字符串中的元音字母,学会了本节内容,你就会快速地删除字符串中的任意字符了。想必大家处理字符串时第一时间想到的是for循环,挨个遍历每个字符,这显然效率低下。有些高手呢也会采用正则表达式来处理字符串,显然有点杀鸡焉用牛刀的感觉了。且看下面的神奇代码:% Matlab% 待处理字符串为s1function s2 = refcn(s1)t =原创 2022-01-01 15:58:32 · 1722 阅读 · 0 评论 -
Matlab中如何创建空的三维坐标轴
想必很多小伙伴经常会使用axes函数来创建二维的空坐标轴吧,可是对三维的空坐标轴却一筹莫展。创建二维的空坐标轴的代码如下所示:% Matlabfigure ax = axes('Position',[0.1 0.1 0.7 0.7]); 效果如下:那么三维的空坐标轴如何创建呢?想必大家想要从三位视角查看一个图像时,都会使用到一个命令吧,如下所示:% Matlabview(3)其实呢,上面的代码可以直接用于创建一个空坐标轴,代码如下所示:% Matlabfigu原创 2021-12-30 13:27:33 · 5548 阅读 · 0 评论 -
Matlab中绘制颜色渐变曲线
大家在文章中是否看见过各类颜色渐变的曲线呢?今天小编就教大家在matlab中如何绘制这类颜色渐变的曲线。一、scatter3函数这个函数是大家最常想到的函数,具体用法就看其帮助文档,小编就给出一段示例代码:% Matlab% dataz = 0:0.01:10*pi;x = sin(z);y = cos(z);cir_r = 1;figurescatter3(x,y,z,cir_r,z,'filled') % color varies with z 二、meshc函数原创 2021-12-22 10:28:39 · 10884 阅读 · 0 评论 -
Matlab已知积分值求解积分限
这一篇文章其实是上一篇文章的姊妹篇。当我们知道被积函数的积分值和表达式时,我们如何反向求解其积分限呢?本文只介绍积分上限是未知数的情况,积分下限是未知数的情况同理可得。例如:已知积分表达式为:积分下限是0积分上限为未知数积分值为0.999998此时,我该如何求出积分上限呢?其实,求解的思想很简单,此时,我们还是可以先写出积分的完整表达式,该表达式减去积分值即可化为一个求解该式的零点问题,对于这种非线性方程,可以使用fsolve、fzero等函数进行求解,此处不过多介绍,求解的原创 2021-12-12 11:03:16 · 3277 阅读 · 0 评论 -
Matlab中使用符号工具箱求解变上限函数积分及其向量化运算
今天要讲的问题如下,当积分限中含有未知数时该怎么办呢?如下图所示,积分限中含有未知数代码如下:% 定义未知数xsyms x% 被积函数f=x*exp(x);% 使用符号工具箱中的int函数定义积分表达式R=int(f,[1 x]);% 使用matlabFunction函数创建函数句柄Rf,此时Rf的形式为@x(...)Rf=matlabFunction(R);Rf(2); % 计算x=2时的值RfT=vpa(int(f,[1 .原创 2021-12-11 19:38:46 · 4052 阅读 · 0 评论 -
Matlab中text函数出现自动换行的问题
小伙伴在使用text函数给图像做标注时,是否遇到过自动换行的问题,那么原因是什么呢?如下图所示:红框内的字符排列成了三行,而我们初衷是让其处于一行上,那么是什么问题引起的呢?其实主要问题在于花括号与方括号的使用上不注意导致的。代码如下:% 生成绘图数据x = 1:.1:10;y = 5*sin(x);RMSE1 = 5;% 绘图plot(x,y,'b*')% 标注% 使用花括号text(3,3,{'均方根误差RMSE=' num2str(RMSE1),'m^3/s.原创 2021-12-11 18:50:12 · 5086 阅读 · 0 评论 -
Matlab中求取置信区间
一、概率密度函数、累计分布函数、逆累积分布函数在数学中,连续型随机变量的概率密度函数(在不至于混淆时可以简称为密度函数)是一个描述这个随机变量的输出值,在某个确定的取值点附近的可能性的函数,如下图1所示,一个变量可以有不同的概率密度函数形式,最简单的如高斯分布。图1 不同的概率密度分布函数在实际应用中,往往确定一个变量的概率密度函数形式是最重要的!!!否则后续分析的结果都有可能是错误的。累计分布函数是概率密度函数的积分值,常见的高斯分布概率密度函数对应的累计分布函数如下图2所示。原创 2021-12-06 19:50:34 · 9790 阅读 · 0 评论 -
Matlab中动画绘制中hold on的小问题
有很多小伙伴都喜欢使用getframe和movie绘制动画,一般情况下都没有什么问题。但是当其结合使用hold on命令时一定要小心。比如如下代码:T_a = 0:300:3600;a = 8025.5;h0 = 10;sigma = a/10;w = sqrt(2.0*9.81*h0) /a;T = 2.0 * pi / w;x = -10000:500:10000;y = -10000:500:10000;[X,Y] = meshgrid(x,y);b_3原创 2021-12-02 18:14:37 · 2046 阅读 · 0 评论 -
Matlab中实现gui界面之间的切换
在实际应用中我们经常需要在不同的界面之间实现跳转,那么在设计gui界面时,我们通常是使用一个“按钮”来实现界面间的转换,今天,小编就带大家一起实现这一简单的功能。首先,在matlab命令行窗口中输入:guide创建两个如下的窗口:注意到第一个图像中小编创建了一个“Open a new figure”按钮,这个按钮就是用来实现界面跳转功能的。另一张图像如下所示:这张图像只包含一个“Exit”按钮。此时在First_Fig.m文件中“Open a new figure”对应的按钮响原创 2021-12-01 19:56:10 · 10365 阅读 · 2 评论 -
Matlab中mapminmax函数使用注意事项
这个函数主要是出现在神经网络工具箱中,其相应的函数还有fixunknowns、mapstd、processpca等函数。在该函数的说明文档中,有这么一段话Before training, it is often useful to scale the inputs and targets so that they always fall within a specified range. The function mapminmax scales inputs and targets so that原创 2021-12-01 19:10:48 · 2197 阅读 · 0 评论 -
Matlab中二值图像连通域判断
无论是在数学上还是在图像处理中,以及其他领域中,都有连通域的概念。今天小编就给大家讲讲matlab中对连通域进行提取的函数有哪些?一、bwlabel函数bwlabel函数是今天要介绍的函数中最简单的一个,使用方法如下:% 二值图像数据BW = [ 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0原创 2021-11-28 13:34:05 · 2541 阅读 · 0 评论 -
Matlab中统计灰度值出现的次数
做图像处理的同学经常需要将一张彩色图片转换成灰度图片,其中就少不了对灰度值的统计,尤其是对图像的边缘进行操作时,那么有哪些函数可以方便我们对灰度图像中的某一灰度值进行统计呢?首先,就是常用的unique函数,因为图像读入电脑中就以矩阵的形式表示,所以对图像的处理也就是对矩阵的处理,不过使用这个函数有些稍微复杂,代码如下:% 导入灰度图像I = imread('cameraman.tif');% 使用unique函数返回排序后的灰度值及对应位置[I_u,Ia,Ic] = unique(I);原创 2021-11-25 19:51:13 · 3088 阅读 · 0 评论 -
Matlab中隐函数绘制方法
想必同学们在平时学习中经常会碰见隐函数吧,那么在matlab中如何绘制隐函数的图形呢?ezplot函数可能是大家经常使用的吧,但是该函数已经逐步要被淘汰了,不建议继续使用。例如下面的代码中ezplot并不能给出很好的结果:% 定义变量syms a x y;% 定义方程a=(9.27*10^-21*2.22*(10+31519.1*y))/(1.38*10^-16*x);y=221.9*(2*coth(2*a)-coth(a));% 使用ezplot绘图ezplot(y,[0,原创 2021-11-24 12:13:58 · 11430 阅读 · 0 评论 -
Matlab图像处理中求单一像素周围八像素之和
小编最近发现这个功能好像很多人都需要,因此,在此给出一种快速计算一个图像矩阵中每一像素周围八像素之和方法,基本思想就是图像的滤波结合卷积的选项。做图像处理的同学,应该都对卷积的概念非常熟悉了,话不多说,直接上代码:A = magic(5) % 测试矩阵h = ones(3,3); % 构建模板h(5) = 0;imfilter(A,h,'conv') % 对矩阵中每个像素求其周围的像素之和当然,同学们可以根据自己的需要自定义模板,从而实现特定的功能。..原创 2021-11-23 16:41:07 · 2643 阅读 · 1 评论 -
Matlab中符号变量替换的一二三
提到符号变量替换,想必大家的第一反应都是subs函数,这个函数的确具有很强大的功能。例如下面的代码:%% 简单地单个变量的替换syms a bsubs(a + b, a, 4) % 将变量a替换为数值4%% 计算表达式的值syms xy = x^2;x = 2;subs(y) % 将x=2带入到y的表达式中求解%% 多个变量的替换syms a bsubs(cos(a) + sin(b), [a, b], [sym('alpha'), 2])%原创 2021-11-22 16:05:08 · 6328 阅读 · 0 评论