
matlab
一从际发
这个作者很懒,什么都没留下…
展开
-
matlab:正态分布相关
简介正态分布的概率密度分布函数(probability density function,常简写为pdf):y=f(x∣μ,σ)=1σ2πe−(x−μ)22σ2y=f(x \mid \mu, \sigma)=\frac{1}{\sigma \sqrt{2 \pi}} e^{\frac{-(x-\mu)^{2}}{2 \sigma^{2}}}y=f(x∣μ,σ)=σ2π1e2σ2−(x−μ)2正态分布的累积分布函数(Cumulative Distribution Function,常简写为cdf)原创 2021-04-01 09:49:59 · 10726 阅读 · 0 评论 -
matlab统计与可视化:boxplot
简介常用接口boxplot(x)boxplot(ax, x)boxplot(ax, x, Name, Value)创建 x 中数据的箱线图。如果 x 是向量,boxplot 绘制一个箱子。如果 x 是矩阵,boxplot 为 x 的每列绘制一个箱子。功能:箱线图提供样本数据的汇总统计量的可视化每个箱子的底部和顶部分别表示样本的第 25 个和第 75 个百分位数。每个箱子的底部和顶部之间的距离表示四分位差;每个箱子中间的红线表示样本中位数;须线是自每个箱子的顶部向上延伸和底部向下延伸的原创 2021-04-01 07:08:57 · 984 阅读 · 0 评论 -
matlab:读取FIgure中的数据
需求已经有保存到本地的.fig文件,希望导入到matlab中后,能够获取该fig中的原始数据,以便做后续的处理。解决实例代码如下。导入本地的test.fig到matlab后,通过以下代码可以获取到这个fig中的所有曲线的原始数据,即x和y,它们为cell数组,其中x{i}和y{i}就对应第i条曲线的原始数据。FilePath = 'E:\data\test.fig';open(FilePath); h =findall(gca, 'type', 'line');x = get(h, 'Xd原创 2021-03-01 14:46:31 · 7241 阅读 · 0 评论 -
matlab:将fig保存为动图gif
引言在一些场景中,不同的参数下绘制出的fig是不同的,为了清晰的看到不同参数下fig的变化。可以将一组fig保存成动态图,从而就可清晰的看出参数变化对fig的影响。在matlab中可以用imwrite()函数实现这一个功能实例利用randn(1, n)产生正态分布的随机数,可以预期:当n越大时,生成的随机数越符合正态分布曲线。h = figure();ax = axes(h);pic_num = 1;for i = 0:100:10000 data = randn(1,i);原创 2020-11-26 12:16:41 · 5888 阅读 · 2 评论 -
matlab:获取当前文件夹下的所有文件名
需求获取当前文件夹(或任意文件夹)下的所有文件名(或部分文件名)。方法dir实例1目的:获取当前文件夹下(或先切换到某一文件夹)的所有文件名cd folderfilenames = dir()注意返回的files是结构数组。每一个文件为一个结构体,有name,folder,date,bytes,isdir,datenum字段。因此可通过filenames(i).name来获取文件名实例2目的:获取当前文件夹下的特定文件名,比如后缀为.matfilenames = dir('*.m原创 2020-08-25 20:48:21 · 12912 阅读 · 2 评论 -
matlab:生成随机数
rand实例1:在(0, 1)区间按均匀分布生成随机数方法:rand(sz1,..szN)>> rand(1,3)ans = 0.4854 0.8003 0.1419实例2:在任意(a, b)区间按均匀分布生成随机数方法:rand(sz1,...szN)*(b-a)+a比如生成(-10,10)区间内的均匀分布随机数:>> rand(1,3)*20-10ans = -1.5648 8.3147 5.8441randi原创 2020-08-02 22:46:14 · 2571 阅读 · 0 评论 -
matlab vs python: 跑循环的速度对比
测试1matlab代码N = 20:25;iters = 2.^N;time = zeros(1,length(N));a = 0.111;b = 0.222;for k = 1:length(N) r = 0; t1 = clock; for i = 1:2^N(k) r = 0.5*a + 0.6*b; end t2 = clock; time(k) = etime(t2,t1); endplot(iters原创 2020-07-25 17:32:00 · 6021 阅读 · 2 评论 -
matlab:插值
1维插值:interp1(x,y,cha_x,‘method’,’’)引入:对1对变量(x,y),我们没有他们的解析表达式,但可以通过实验得到一张(x:y)映射表。那么对于任意的x值,都可以通过插值来获得y输出。插值的本质:按照插值方式将表无限拓展。功能:如上。建立(x:y)的任意映射。实现方式:interp1(x,y,cha_x,‘method’,’’)插值方式线性插值要求:cha_x必须是在x的区间范围内,若超出x的区间,插值结果为naninterp1默认插值方法为线性插值实例1:演原创 2020-06-14 22:45:21 · 857 阅读 · 0 评论 -
matlab中的数值类型
1. 什么是浮点数?一种表示方式:用科学计数法来表达实数。表示方式:尾数(就是有效数字),基数(base),指数(exponent)。尾数中数字的个数即为精度,精度为p位。d0.d1d2……dp−1bed_0.d_1d_2……d_{p-1}b^ed0.d1d2……dp−1be计算公式:(d0+d1b−1+d2b−2+……+dp−1b−(p−1))∗be,0≤di<b(d_0+d_1b^{-1}+d_2b^{-2}+……+d_{p-1}b^{-(p-1)})*b^e,0\leq d_i\原创 2020-06-14 22:41:39 · 970 阅读 · 0 评论 -
在matlab中调用python程序
在matlab中输出pyversion,查看当前python解释器的路径输入pyversion executable修改python解释器路径。比如我需要用qutip-env这个环境,输入:pyversion 'D:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\envs\qutip-env\python.exe'check是否修改成功。pyversion查看路径,修改成功;py.qutip.sigmaz()`:可.原创 2020-06-14 22:35:41 · 2175 阅读 · 0 评论 -
matlab:矩阵相关
矩阵的构造零矩阵:zeros()一矩阵:ones()单位矩阵:eye()均匀分布随机数矩阵[0,1]区间:rand(n)orrand(n,m)[a,b]区间:rand(n)*(b-a)+aorrand(n,m)*(b-a)+a正态分布随机数矩阵均值=0,标准差为1:randn(n)orrandn(n,m)均值=a,标准差为b:b*rand(n)+aorb*rand(n,m)+a实例化:均值=5,标准差为10的10000个数据点。>> tt=10*randn(10000,原创 2020-06-14 22:32:24 · 343 阅读 · 0 评论 -
matlab中@的用法
用法1:@(输入参数)表达式场景:有时需要定义一个函数来计算某个表达式的值,可以直接用语法:@(输入参数)表达式,来创建一个匿名函数,返回该函数句柄。然后就可以用该句柄来计算了。优点:减少代码量,简洁清晰。实例:在曲线拟合中需要定义拟合函数modelFunc,常用这种方法来定义。>> T1_fit_func=@(x,a)a(1)*exp(-x/a(2))T1_fit_func = 包含以下值的 function_handle: @(x,a)a(1)*exp(-x/a(原创 2020-06-14 22:26:38 · 13632 阅读 · 0 评论 -
MATLAB:常用绘图tips
标题换行利用newlinetitle([str1,neline,str2])利用celltitle({str1;str2})在一个ax中绘制多条lineplot(ax,x1,y1,x2,y2);利用hold(ax,‘on’)plot(ax,x1,y1)hold(ax,'on')plot(ax,x2,y2)注意:默认情形下,ax是hold off的。指定坐标轴范围axis([0 1 0 0.018]);orxlim(), ylim()plot(x,y,‘ro’)功能原创 2020-06-14 22:19:21 · 554 阅读 · 0 评论 -
metaclass
需求有时我们需要知道一个类有哪些属性和方法。已知条件:该类的一个对象。方法利用metaclass()。metaclass(object)返回meta.class对象,这个类对象包含所有的object类的信息。code>> data=metaclass(C)data = class (具有属性): Name: 'qubit' De原创 2017-09-11 23:13:58 · 417 阅读 · 0 评论 -
feval,str2func
需求我们有一个字符串A,而A实际是一个函数名或类名,我们想要执行函数A(),或新建一个A对象。what[y1,...,yN] = feval(fun,x1,...,xM) fun为函数名或句柄,X1……XM为该函数的参数,y1……yN为该函数的返回值。feval执行该函数,返回结果。code执行函数>> A='round';>> feval(A,pi)ans = 3执行类,新建原创 2017-09-11 23:01:29 · 1121 阅读 · 0 评论 -
matlab:nargin,varargin,varargout
引入nargin是用来判断函数中输入变量的个数,这样就可以针对不同的情况执行不同的功能。通常可以用他来设定一些默认值.实例利用nargin判断输入参数个数%利用nargin判断输入参数个数function test_nargin(a,b)switch nargin case 2 disp('2 input arguments') case 1原创 2017-06-28 17:02:39 · 4477 阅读 · 0 评论 -
matlab 常用文件读写操作
前言在工作中,常常需要将数据写入文件,或者从文件中读取数据。在matlab中,实现文件读写操作的函数有许多。比如: fopen() fscanf() fprintf() load() dlmwrite() save() fclose() 等等。针对需求选取恰当的函数,将会极大编程效率。实例将矩阵写入txt文件save() 适用范围:将工作空间的变量保存到文件中。save(filename)原创 2017-04-15 18:29:25 · 819 阅读 · 0 评论 -
matlab常用快捷键
前言磨刀不误砍柴工。熟练运用matlab中的快捷键能极大提高编程效率。常用快捷键clc :清屏命令窗口(还你一个清爽干净的命令窗口)clear: 清空工作区的变量Tab:自动补全Ctrl+C: 停止程序运行Ctri+Tab:在各个窗口间切换(命令窗口,工作空间,文件目录)Ctrl+I:自动缩进(也适用于多行缩进,结合Ctrl+A,效果很爽)Ctrl+R:注释(也适用于多行注释)Ctr原创 2017-04-15 19:06:12 · 958 阅读 · 0 评论 -
matlab信号处理实例1:信号发生与采样
问题描述用GUI方式编程实现一个频率在100-500Hz,幅值在0-2000,相位0-180度可变的正弦波信号,信号采样率为5120Hz核心代码function slider1_Callback(hObject, eventdata, handles)f=get(handles.slider1,'Value'); %获取GUI中频率滑动条的值phi=get(handles.slider2,'Val原创 2017-04-16 23:56:55 · 8882 阅读 · 1 评论 -
matlab:使用全局变量
简介全局变量(global variable)是变量的一种类型,区别于局部变量。若将一个变量声明为全局变量,则它所占的内存为全局内存,而不是本地工作区内存。因此全局变量就可以被所有工作区访问,修改。实例理解在函数间共用全局变量定义两个函数文件,setGlobalx和getGlobalx代码%设置全局变量的值function setGlobalx(var)global xx=var;end%获原创 2017-04-20 13:41:55 · 111408 阅读 · 0 评论 -
matlab信号分析:理解采样中的频率混叠
理解采样中的频率混叠原理AD数模转换器通过采样将模拟信号转变为数字信号采样频率应大于模拟信号频率的2倍。原因:一个周期内最少采两个点才能保留模拟信号的周期信息)当采样频率小鱼模拟信号频率的2倍时,会发生频率混叠。即从原始的高频信号变为低频信号。代码写了个简单的GUI,核心代码如下:function pushbutton1_Callback(hObject, eventdata, handle原创 2017-04-16 23:39:26 · 12549 阅读 · 1 评论 -
matlab:用sprintf()格式化输出
sprintf()语法%Format data into stringstr = sprintf(formatSpec,A1,...,An) %formats the data in arrays A1,...,An according to formatSpec in column order, and returns the results to str.实例%数值的格式化输出str_a=s原创 2017-04-17 08:51:24 · 84350 阅读 · 1 评论 -
matlab:字符串数组和string的区别
前言在用sprintf()格式化输出时,发现formatSpec可以是单引号创建的字符串数组,也可以是string(‘str’)创建的string。所以产生了疑惑,这两者有什么区别,各适用在什么场合官方文档Character arrays and string arrays provide storage for text data in MATLAB®. A character array原创 2017-04-17 09:08:01 · 26748 阅读 · 2 评论 -
matlab信号分析与处理:时域分析
简介时域分析:对所记录的信号幅值随时间变化曲线进行分析。因在时间域进行,也称为时域分析。即对模拟信号采样编码转化为数字信号后,在时间域上分析这些数据,得到信号的参数。1.波形分析频率(周期) 过零点检测法峰值(双峰值) 初相位均值均方值方差2.信号数字微分/积分数字微分数字积分实例%采样获得数字信号,实际上就是一个列表t=linspace(0,1,N);Fs=1000; %采样频率原创 2017-04-22 22:58:53 · 21125 阅读 · 1 评论 -
matlab: 计算程序运行时间
需求当需要定量的评价代码的执行效率时,需要知道程序的运行时间。实现在matlab中,用tic 和 toc命令可以很轻松的实现。程序遇到tic时Matlab自动开始计时,运行到toc时自动计算此时与最近一次tic之间的时间。实例%test脚本。通过tic,toc命令直接输出程序运行时间。ticpause(1)t1=tocpause(1)t2=toc执行结果>> test时间已过 1.000原创 2017-05-08 13:52:48 · 17775 阅读 · 0 评论 -
matlab:导入文件夹内所有.mat文件
需求:需要导入一个文件夹内的所有mat文件解决方案利用dir()函数获取该文件夹下的所有.mat文件名利用for循环,循环load()所有文件名实例读入这个文件夹‘I:\learn\EE\task1\T=50’下的所有mat文件,将其中的vol1,vol2字段读出来prefix=('I:\learn\EE\task1\T=50\');d=dir([prefix,'*.mat']);for原创 2017-06-05 23:49:01 · 21515 阅读 · 0 评论 -
matlab中的包文件夹管理:‘+’文件夹
引入MATLAB中,为了方便管理类和方法,可以使用package文件夹。即在文件夹名称前加一个’+’号。它的作用是提供一个命名空间。实例有个包文件夹mypack。该目录下有一个方法pkfcn.m;还有一个类文件夹@myclass+mypack+mypack/pkfcn.m % a package function+mypack/@myClass % class folder in a pa原创 2017-06-28 16:37:53 · 4078 阅读 · 0 评论 -
MATLAB中的p文件
什么是p文件后缀为.p的matlab文件。p意思是预解析(preparsed version)。即将.m文件里的代码预解析一遍,生成p文件。当再次调用时,实际上调用的就是.p文件。目的是提升调用速度。 有什么用一种用处是用来做加密。即如果想让别人使用我的程序,但不想让其看到源代码。则不给他.m文件,而是给他对应的p文件。当他拿到p文件后,使用命令’help 文件名’,则可以看到文件里有哪些方法可以调原创 2017-06-28 16:43:57 · 19008 阅读 · 0 评论 -
matlab中的persistent变量
函数里面普通的变量都是局部变量,一旦函数退出,变量也就不复存在,而定义成persistent变量,可以在多次调用同一函数时保留变量的值。这种变量有点类似于全局变量,但和全局变量不同的是,它仅在定义该变量函数中可见,在其它函数中是不可访问的。原创 2017-06-28 16:45:46 · 4429 阅读 · 0 评论 -
matlab:常用内置函数
ischartf = ischar(A) returns logical 1 (true) if A is a character array and logical 0 (false) otherwise.isstringtf = isstring(A) returns 1 (true) if A is a string array. Otherwise, it returns 0原创 2017-04-27 16:30:31 · 4519 阅读 · 0 评论