自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 收藏
  • 关注

原创 Matlab:多输入多输出非线性对象的模型预测控制(MPC, Model Predictive Control)的实现

[TOC](Matlab:多输入多输出非线性对象的模型预测控制(MPC, Model Predictive Control)的实现)✨ 本文展示了如何在Simulink中设计多输入多输出对象的闭环模型预测控制 (MPC, Model Predictive Control),分析对象具有三个操纵变量(Manipulated Variables)与两个测量输出(Measured Output)。

2022-11-05 23:15:40 6359 1

原创 Matlab:使用 Filtered-x LMS FIR 自适应滤波器实现有源噪声控制

它使用次级通道的估计结果计算一个输出信号,该输出在误差传感器处与不期望的噪声相互抵消,以达到噪声消除的目的。实际情况下,次级通道的滤波器长度可以比实际通过其噪声信号的长度短,并且在通常情况下,并不需要对整个噪声信号进行自适应控制。是抗噪声从输出扬声器到安静区内的误差麦克风的路径。下面的Matlab指令可以生成一个扬声器到误差麦克风的脉冲响应,即次级通道的脉冲响应。下面进行有源噪声控制系统的设计,为了突出有源噪声控制系统的影响,在开始200步迭代中不使用有源噪声控制,并在消噪之前监听误差麦克风处的信号。

2022-10-28 03:14:46 1780

原创 Python:自适应滤波器简介及其实现方法

自适应滤波器的原理如下所示:自适应滤波器的特点:(1)无需提取信息的先验统计特性;(2)直接利用观测数据,并依据某种判据在观测过程中不断递归更新;(3)最优化。自适应滤波器的分类:(1)按结构分类:横向结构、格型结构;(2)按算法分类:随机梯度、最小二乘法;(3)按处理方式分类:成批处理、递归处理。自适应滤波器的详细模型如下图(图片来源)所示:输入信号:x(n)=[x(n),x(n−1),...,x(n−L)]T{\bm x}(n) = [x(n), x(n-1), ..., x(n-L)]^

2022-10-24 21:25:42 5080 5

原创 MySQL:Ubuntu系统本地安装MySQL数据库及其基本使用方法(一)

询问希望继续安装的时候输入y,然后等待出现如下图所示的内容即表示安装成功:执行完上面的指令后,我们就在Ubuntu系统本地安装了一个MySQL数据库服务器了。

2022-10-22 23:32:50 2826 1

原创 Pymoo:优化算法收敛性的实例分析

1、优化问题的定义为了使用Pymoo进行算法收敛性分析之前,我们首先应该得到一个优化问题及其分析结果。这里以文献1中Pymoo定义的具有两个约束及双目标优化问题MyProblem及其分析结果为例,进行本文的优化算法收敛性分析过程。另外,根据文献2这一篇文章,我们得知由于MyProblem问题相对来说比较简单,我们可以得到其Pareto前沿。MyProblem。

2022-10-20 01:33:39 2778

原创 Pymoo:使用多目标优化搜索解集的实现方法

常见的终止准则是限制函数的迭代次数。此外,一些算法还实现了自己的终止算法,比如,单纯形(simplex)退化时的Nelder Mead算法,或使用CMA-ES算法。✨ **注意,算法收敛性分析(Convergence Analysis)的说明:**收敛性分析能够显示算法在某个时刻算法取得的多大的优化程度。

2022-10-19 00:50:36 2391 3

原创 Python:带约束的双目标优化问题的实现方法

上面例子相对来说比较简单,我们可以得到Pareto集(Pareto Set)与Pareto前沿(Pareto Front)的数学表达式。然而对于复杂的问题,从数学上是很难推导出Pareto集与Pareto前沿,甚至是不可能的。此时,我们就需要优化算法,通过良好的基准算法找到(接近最优的)解。

2022-10-18 22:43:16 2078

原创 Pymoo:遗传算法原理简介及Pymoo中遗传算子的实现示例

一、遗传算法原理简介二、Pymoo中的遗传算子(Genetic Operators)及其实现2.1 抽样算子(Sampling Operator)2.2 选择算子(Selection Operator)2.3 交叉算子(Crossover Operator)2.4 突变算子(Mutation Operator)😈Pymoo: 基于 Python 的多目标优化仓库 (MOO, Multi-objective Optimization)。🏠✨注意:本文使用Pymoo版本为0.6.0。

2022-10-18 15:39:56 3760 2

原创 Pymoo:优化算法的性能指标(Performance Indicators)

对于单目标优化算法,由于每次优化运行都会产生一个最优解,因此算法的性能比较相当简单。然而,在多目标优化算法中,每次运行都会返回一组非支配解集(non-dominated set of solutions)。为了比较多组解的性能1,Pymoo实现了以下常用的性能指标:1、GD / IGD:给定一个Pareto前沿,这两个指标衡量了非支配集合(non-dominated set)与最优集(optimum)之间的偏差(1)GD (Generational Distance)指标。

2022-10-17 22:06:50 3773 4

原创 Pymoo:基于多准则决策制定 (MCDM) 方法的算法设计

我们可以使用任何标量化方法,并将其用于后处理(post-processing)。(ASF, Augmented Scalarization Function),它是一个非常有名的多目标评价量。的主要重点在于优化,而不是 MCDM,但是该框架同样提供了一些基本的相关工具,可用于MCDM问题的分析,最终寻找一个理论上最优的决策。在计算高折中点指标的方法就是参考这篇文献的。(后续有机会,我可以翻译一下),通过下面的公式计算出第。问题为例,并别两个目标的重要程度一样,即将权重向量。该方法的具体原理可以参考文献。

2022-10-17 05:53:23 2192

原创 Python: scipy.signal.coherence的用法及代码示例

的幅度平方相关估计 (MSC, Magnitude Squared Coherence Estimation)的功率普密度估计值 (PSD, Power Spectral Density Esitmation),的交叉谱密度估计 (CSD, Cross Spectral Density Estimation)。的作用为:使用 Welch’s 方法评估离散时间信号。

2022-10-15 18:06:00 1037

原创 Ubuntu22.04安装Git LFS

Git LFS(Large File Storage,大型文件存储)是Git扩展,可以管理Github项目中的大文件的下载流程。(1)在进行机器学习或深度学习时,总是遇到模型太大,以至于GitHub仓库容纳不了。(2)训练数据集数量非常多,GitHub仓库只能存储部分数据集,比如下图所示,仓库中其中一个数据集中的.wav文件实际有9000条,而实际只能在GitHub仓库中只能显示1000条。✨ 另外,如果我们不在系统中安装Git LFS情况下,在克隆像上面这种存储大量数据集的。

2022-09-14 18:27:03 2580 1

原创 Pandas滑动窗口函数rolling()的使用方法(入门够用)

pandas中的rolling函数,这个函数可以被Series对象调用,也可以被DataFrame对象调用,这个函数主要是用来做移动计算的。在时间序列中,还有另外一个比较重要的概念—滑动窗口。滑动窗口指的是根据指定的单位长度来框住时间序列,从而计算框内的统计指标。相当于一个长度指定的滑块在刻度尺上面滑动,每滑动一个单位即可反馈滑块内的数据。

2022-09-08 17:21:40 5130

原创 Pytorch常用的4种随机数生成方法

对张量序号进行随机排序的函数,并根据生成的随机序列。为:将二维张量按照行进行随机排序。

2022-08-30 23:26:15 17483

原创 Docker入门与实践:Docker中的网络功能简介

Docker入门与实践:Docker中的网络功能简介Docker提供网络服务的方法包括两种:通过外部访问docker容器的方式;通过Docker容器间互联的方式。一、外部访问docker容器在docker容器中可以运行一些网络应用,外部想要访问docker容器内的应用,可以通过-p或-P选项来指定端口映射,两个选项的区别如下所示:(1)-p:指定要映射的端口,通过该端口绑定一个docker容器;(2)-P:docker会随机映射一个范围的端口到内部容器开放的网络端口。其中这个随机的端口范围可.

2022-06-13 23:56:27 665

原创 Docker入门与实践:Docker数据管理

Docker入门与实践:两种Docker数据管理方法——数据卷、挂载主机目录Dcoker容器内管理数据有两种方式:数据卷(Volumes);挂载主机目录(Bind mounts)。一、Docker的数据卷Docker的数据卷是可供一个/多个容器使用的特殊目录,其作用和特性如下所示:(1)可以在容器之间共享和重用;(2)可以被修改,且立即生效;(3)对其进行更新,并不影响镜像;(4)默认情况下,即使容器被删除了,它也会一直存在;理解:数据卷的使用,类似于Linux中对目录/文件进行.

2022-06-12 23:59:19 1664 2

原创 Docker入门与实践:操作容器方法详细介绍

Docker入门与实践:操作容器方法详细介绍Docker容器作为Docker的核心概念之一,是独立运行的一个/一组应用及其运行状态的环境。本文将介绍如何管理一个Docker容器,包括创建、启动和停止操作等内容。在学习Docker容器具体操作之前,我们要具有这样的意识:由于Docker容器的轻量级特性,使用容器的通常方法是随时删除和新建容器。一、Docker容器的启动方法新建并启动Docker容器的命令为docker run。比如,本地具有ubuntu:16.04Docker镜像(如果没有,可.

2022-06-12 01:24:03 1826

原创 编译原理入门(一):GNU编辑器(GCC)原理简介

GCC的编译工程可以分为四个步骤:GCC编译过程中,每个步骤都会生成不同的文件格式,下表列举了C/C++在编译过程中生成的文件类型:✨ GCC的基本用法如下所示,使用GCC编译器我们需要关注两个方面:调用参数(操作方法)和文件名称(操作对象)。其中,:GCC编译器的调用参数;:操作的文件对象。在Linux系统上,我们可以通过终端直接查看GCC的英文帮助手册,如果应以水平好的话,可以经常查看GCC的手册。在终端输入即可打开:手册中给出的介绍比任何资料都详细准确,但是非常的长1.6万行。快速浏览手册的快捷

2022-06-05 03:24:14 3566

原创 VIM插件:目录导航与操作插件NERDTree的使用方法

VIM插件:目录导航与操作插件NERDTree的使用方法📘 从外部Buffer打开NERDTree的方法👨‍💻 假设已经会了VIM的配置基本知识,并会安装和简单配置VIM插件了,如果这点不太熟悉,可以自行查看相关文献。NERDTree没有设置从外部Buufer打开的快捷方式,但是我们可以在自己的vim配置文件中使用nnoremap进行快捷键绑定,官网给出了一个配置方法:nnoremap <leader>n :NERDTreeFocus<CR>nnoremap <C-n

2022-05-23 00:22:01 7015

原创 Vim快捷键(四):Vim查找与替换

Vim快捷键(四):Vim查找与替换💫 在编辑文本的过程中,经常需要查找与替换操作,Vim提供了文本的快速查找与替换操作,可以极大的提高工作效率。📘 查找命令作用/something、?something在后面/后面查找somethingn/N向后/前查找下一个📘 替换命令作用:s/old/new用new替换当前行第一个old:s/old/new/g用new替换当前行所有old:n1,n2s/old/new/g用new替换

2022-05-22 01:41:19 3002

原创 Vim快捷键(三):剪切复制粘贴

Vim快捷键(三):剪切复制粘贴📘 Vim粘贴板✨ Vim具有默认的12个粘贴板(寄存器),分别为0、1、2 … 9、a、"、+,通过:reg命令可以查看各个粘贴板中的内容。👨‍💻 说明:📝 "粘贴板也叫临时粘贴板,其比较特殊,在Vim中简单使用y命令只是复制到"的剪切板(寄存器)中,同样使用p命令也是粘贴"剪切板中的内容。📝 "之所以为被称为临时粘贴板,是因为针对其他几个寄存器的使用,都需要使用它作为中间寄存器来完成复制粘贴工作。比如,"ay的作用是把内容复制到粘贴板a。📝 +粘贴板是系

2022-05-22 01:35:25 4832

原创 Vim快捷键(二):光标移动

Vim快捷键(二):光标移动📘 基本移动以下移动都是在正常模式下的操作快捷键作用h、l、j、k左、右、下、上移一个字符gj、gk移动到一段内的下、上一行+或Enter光标移动到下一行第一个第一个非空字符-光标移动到上一行第一个第一个非空字符w、e光标移动到下一个单词开头/末尾W光标移动到下一个单词开头,但是忽略一些标点E光标移动到下一个单词末尾,如果有标点,则移动到标点处b光标移动到上一个单词开头B光标移动到上一个单

2022-05-22 01:26:14 1163

原创 Vim快捷键(一):文档操作与文本插入

Vim快捷键(一):文档操作与文本插入📘 Vim文档操作Linux系统中的内容都一文件的形式进行存储,在Vim中打开命令行的方式是在正常模式下按下:,Vim的命令行经常使用到的文档操作命令如下表所示:快捷键描述e file关闭当前编辑的文件,并打开新的文件;如果没有保存当前文件,vim则会警告e! file放弃对当前文件的修改,并编辑新的文件e+file从文件尾开始编辑新的文件e+n file从第n行开始编辑新的文件enew编辑一个未命名的新文件

2022-05-22 01:21:27 1326

原创 ubuntu资源下载利器:多线程、断点续传下载工具mwget的安装与使用

ubuntu资源下载利器:多线程、断点续传下载工具mwget的安装与使用:orange_book: 实际问题:资源下载很慢:orange_book: mwget的安装与使用:book: mwget的安装:book: mwget的使用📙 实际问题:资源下载很慢✨ 我们在使用wget下载网络上的资源时,经常遇到几k的下载速度。然而,我们已经设置国内源了,但是仍然无济于事。如下图所示,8M多的资源下了将近二十分钟。如下下图所示,甚至更过分的是,有的时候终于等了小半个小时,下载到99%,然后wget下载终

2022-05-21 01:20:14 3527

原创 npm、node.js、yarn简介

npm、node.js、yarn简介一、npm简介二、Node.js简介三、Yarn简介——npm的最大竞争者四、npm与yarn换源——实际应用前首要考虑的第一个问题一、npm简介在介绍npm是什么之前,我们需要首先了解为什么要使用npm。对于程序员通常会遇到这样的问题:当一个网站所依赖的javascript(js)代码逐渐增加时,我们需要到jQuery官网上下载jQuery、到BootStrap官网上下载BootStrap、到Underscore官网下载Underscore等等,为了解决这个问题,

2022-05-18 09:33:38 2400

原创 利用xfce4给ubuntu终端添加背景图片

利用xfce4给ubuntu终端添加背景图片动机一、xfce4的安装二、设置xfce4为默认终端设置xfce4终端字体及添加背景图片三、彻底卸载xfce4的方法动机我使用xfce4的动机:天天看着单调的终端有点枯燥,就想加上一个漂亮的背景图片,当然xfce4的美化功能不仅如此。一、xfce4的安装sudo apt-get install xfce4二、设置xfce4为默认终端ubuntu提供了一个update-alternatives方法修改系统的默认终端,使用法法如下所示:sudo upd

2022-05-06 14:35:35 1209

原创 Git快速入坑:通过Git的三条指令,实现本地代码版本控制

Git快速入坑:通过Git的三条指令,实现本地代码版本控制Git工作机制一、Git初始化本地库二、Git查看本地库状态三、Git提交本地仓库区操作3.1 添加到暂存区3.2 提交到本地库Git工作机制注意:这张图有Git基础的能看懂最好,具体的看不懂也不要紧,但是需要对Git工作机制有个整体认识:(1)本地仓库包括:工作区(可以先理解为它就是本地的一个文件夹)、暂存区(可以暂时理解为存放工作区、仓库区的中转站)、仓库区(成型的代码仓库)。(2)Github是一个远程仓库,本地有的各种Git操作,

2022-05-06 01:00:49 484

原创 终端复用工具tmux简介及常用快捷键

终端复用工具tmux简介及常用快捷键tmux的Layouts基本概念1、服务(Server)2、会话(Session):建立一个tmux工作区会话;3、窗口(Window):容纳多个窗格;4、窗格(Pane):可以在窗口中分成多个窗格。tmux的常用快捷键注意:在使用下面的快捷键的时候,需要首先使用主键:Ctrl + b(也称为激活键),也称为快捷键前缀,然后再按下相应操作的快捷键即可执行相应的操作了。1、tmux的窗口快捷键描述c新建窗口&关闭窗口

2022-05-05 22:52:49 1249

原创 Oh My zsh中git插件的使用简介

Oh My zsh中git插件的使用简介在~/.zshrc中添加git插件的方法如下图所示,如果配置文件中没有git插件,可以将其添加上即可:安装的插件放在如上图的红框中的目录地址中。如下图所示,安装的git插件文件夹中有两个文件:(1) git.plugin.zsh:git插件配置文件;(2) README.md:个it插件使用手册。其实,其他插件也是这种存放格式,通过这种方式我们可快速了解Oh My zsh相关插件的具体内容。这里罗列几个常用的作为示例展示它们的作用:快捷键

2022-05-05 22:49:38 2405

原创 Jupyter Notebook常用快捷键

Jupyter Notebook常用快捷键Jupyter Notebook有两种命令方式,(1)编辑模式(绿色);(2)命令模式(蓝色)。Enter:进入编辑模式Esc:进入命令模式命令模式快捷键描述L隐藏、显示当前cell的代码行号A在上方增加一个cellB在下方增加一个cellD连续按两次删除单元格F查找替换H显示快捷键帮助X剪切当前cellC复制该cellV在当下的cell粘贴复制的cellShi

2022-05-05 22:47:01 1153

原创 Python实例:通过os模块实现指定路径下文件权限的修改方法

Python实例:如何优雅的读取文件名信息一、问题描述二、实现代码2.1 创建代码测试文件2.2 对.py和.c文件加上用户可执行权限的实现代码附录1. str.startswith()和str.endwith()方法2. Linux系统的文件属性一、问题描述比如在某目录下包含一系列文件:MCS51_program.calgorithm.cpandas_example.pynumpy_example.pyweb_development.javaLINUX_CORE_program.shGU

2022-04-15 21:34:40 3183 2

原创 Python实例:含有多种分割符字符串拆分方法的详细解析

Python实例:实现拆分含有多种分割符号的字符串的方法

2022-04-14 22:21:01 14569 1

原创 Doom Emacs入门:通过Doom Emacs框架搭建一个基本的Python开发环境及其基本操作

Doom Emacs:Doom是一个GNU Emacs 26.3+的定制框架,非常适合于希望在自己的框架中使用更少的扩展插件,并在此基础上手动高性能地扩展自己的Emacs配置的开发者。同时Doom还是开发人员配置自己Emacs的基础,通过它还可以更好的了解和管控自己的操作系统。Doom框架使得开发者具有很高的开发自由度,它重点关注性能(运行和启动性能)、可读性代码设计。通过Doom框架更进一步拉近了开发者与Emacs之间的沟通距离。打开后的界面如下图所示不管是Emacs新手还是老手,需要了解的第一

2022-04-13 20:23:18 3828

原创 Python实例:通过字典值反向查询键值的实现方法

Python实例:通过字典值反向查询键值的实现方法一、实际场景二、通过字典值反向查询键值的实现方法一、实际场景正常情况下,我们可以通过Python字典的键值查询值,但是在有的应用场景中我们希望反过来,通过值反向查询键值,本文给出这种场景的实现方法。比如百米赛跑,对于每个运动员的用时进行计数,比赛完后把每个运动员的用时记录到字典中,其存储格式如下所示:{'xiaoliang': (1, 16.9), 'xiaoxin': (1, 11.7), 'xiaowang': (2, 13.8) ......}

2022-04-08 16:27:35 2540

原创 Python实例:字典共同键值查找的两种实现方法

Python实例:字典共同键值查找的两种实现方法一、实际场景二、字典共同键值查找的实现方法2.1 直观的解决方法2.2 更为通用的解决方法一、实际场景比如,NBA每场球星的得分统计,都以字典格式存储:第一场:{'詹姆斯': 32, '库里': 22, '字母哥': 18, ...}第二场:{'詹姆斯': 23, '恩比德': 17, '杜兰特': 28, ...}第三场:{'詹姆斯': 27, '哈登': 19, '利拉德': 16, ...}…下面我们需要统计出前N场比赛,每场进球都在20分

2022-04-07 22:59:46 3748

原创 Python实例:根据字典值对字典进行排序的三种方法

Python实例:根据字典值对字典进行排序的三种方法一、实际场景及解决思路二、字典排序的三种实现方法2.1 使用列表解析方法实现字典排序2.2 使用`zip`方法实现字典排序2.3 使用传递`sorted`函数的`key`参数实现字典排序三、将sorted排序的列表返回给字典一、实际场景及解决思路实际场景:比如某个班的数学成绩以字典格式存储为:student_dict = { 'xiaoliang': 81, 'xiaowang' : 92, 'xiaoxin' : 99, ......}

2022-04-07 22:50:22 34552 1

原创 Python实例:元组中元素的重命名方法,以便提高程序可读性

Python实例:元组中元素的重命名方法,以便提高程序可读性Python元组数据存储简介方案一:定义元组索引的数值常量方法方案二:定义元组索引的枚举类型方法方案三(推荐方案):使用标准库中collections.namedtupe替代内置tuple1、namedtuple使用方法2、namedtuple使用实例3、namedtuple使用方法及注意事项Python元组数据存储简介场景描述:对于像学生信息系统中数据为固定格式(比如:名字、年性、性别、身高、电话等),我们可以使用元组方式存储,格式如下所示:

2022-04-06 10:07:01 543

原创 Python实例:根据条件筛选列表、字典、集合中数据的方法

Python实战:根据条件筛选列表、字典、集合中的数据案例一:过滤列表中的负数案例二:筛选出字典中值大于某个值的项案例三:筛选出集合中符号某个条件的元素案例一:过滤列表中的负数过滤列表[3, 5, -19, -3, 48, 22, -19, -33, 42, -4, -18]中的负数。最简单的实现方法:使用for循环实现,代码如下所示。data = []案例二:筛选出字典中值大于某个值的项筛选出字典{'xiaoliang':87, 'xiaowang':99, 'xiaoxin':95, 'x

2022-04-05 18:45:20 13483

原创 Python进阶:理解元类创建类ABCMeta

Python进阶:理解抽象基类元类(ABCMeta)一、理解元类(Meta class)1.1 元类直观理解1.2 Python官方文档给出的元类描述二、理解抽象基类(ABC, Abstract Base Classes)2.1 Python官方文档给出的抽象基类概念2.2 抽象基类abc模块源码注释理解三、理解ABCMeta3.1 理解ABCMeta3.2 创建ABCMeta类的过程一、理解元类(Meta class)要想理解ABCMeta类,我们需要先理解元类。1.1 元类直观理解理解元类:

2022-03-19 07:01:40 9054

原创 Python临时文件创建:tempfile模块简介

Python临时文件创建:tempfile模块简介一、tempfile模块简介二、tempfile模块主要函数介绍2.1 高级临时文件对象创建函数:Temporaryfile和NamedTemporaryFile2.2 假脱机模式高级临时文件对象创建函数:SpooledTemporaryfile2.3 高级临时目录创建函数:TemporaryDirectory2.4 底层临时文件/目录创建函数:mkstemp和mkdtemp三、tempfile模块的文件/文件夹属性操作函数一、tempfile模块简介1

2022-03-18 05:15:07 7965

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除