自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C/C++中container_of相关详解

该宏定义可以在编译时就直接计算出偏移量,避免了运行时的计算开销,因此比通过变量名访问成员的方式更为高效,通常用在需要直接访问结构体成员的底层代码中,例如在操作系统内核、嵌入式系统以及一些高性能计算应用中。然后,调用offsetof()即可得到member在type类型中的偏移量,最后返回一个指向type类型的指针。如上例,pname指向stu的name成员,通过container_of()宏获得了指向整个struct student结构体的指针pstu,然后就可以访问id和name成员了。

2024-03-13 09:59:11 460 1

原创 使用串口FIFO和Timer实现数据的高效收发

/指向接收缓存//帧首标志,为0xFF或者0xEE//找到帧首,一般是3~5个FF或EE//帧首的个数,一般3~5个//已经接收的字节数//找到完整帧后,置1//本帧数据总长度,这个区域是可选的3.2 初始化数据结构,一般放在串口初始化中/*** @brief 初始化寻找帧的数据结构* @param p_fine_frame:指向打包帧数据结构体变量* @param dst_buf:指向帧缓冲区* @param sfd:帧首标志,一般为0xFF或者0xEE*/

2024-03-05 14:51:04 1000

原创 Linux内核内存管理架构详解

因为访问效率等原因,内核对内存采用简单的线性映射,但是因为32位CPU的寻址能力(4G大小)和内核地址空间起始的设置(3G开始),会导致内核的地址空间资源不足,当内存大于1GB时,就无法直接映射所有内存。高端内存分配的内存是虚拟地址连续而物理地址不连续的内存,一般用于内 核动态加载的模块和驱动,因为内核可能运行了很久,内存页面碎片情况严 重,如果要申请大的连续地址的内存页会比较困难,容易导致分配失败。内核内存管理的核心工作就是内存的分配回收管理,其内部分为2个体系:页管理和对象管理。

2024-03-05 14:26:19 1283

原创 秋招JAVA面经总结

悲观锁做事比较悲观,它认为多线程同时修改共享资源的概率比较高,于是很容易出现冲突,所以访问共享资源前,先要上锁。先修改完共享资源,再验证这段时间内有没有发生冲突,如果没有其他线程在修改资源,那么操作完成,如果发现有其他线程已经修改过这个资源,就放弃本次操作。可见,乐观锁的心态是,不管三七二十一,先改了资源再说。另外,你会发现乐观锁全程并没有加锁,所以它也叫无锁编程。这里举一个场景例子:在线文档。

2023-11-21 16:27:27 224

原创 C/C++指针变量详解

函数(如下例的funcForSpace())内定义局部变量(如下例的a)保存在一个函数的栈帧上,当一个函数执行完毕后,另一个函数(如下例的stackFrame_reuse())执行时,该空间会被stackFrame_reuse()重复使用,a所使用的空间将不复存在,所以当一个指针变量指向局部变量的内存空间时,其地址值传递给主调函数时,并不是一个有效值。二维数组是数组的数组,n维数组是n-1维数组的数组。指针变量的值就是其指向的空间的地址,指向的地址的空间大小就是指针变量指向类型的大小。

2023-11-01 09:58:56 182

原创 C++中invoke与function的区别

std::function是一个函数对象的封装器,可以用来封装任意类型的可调用对象,比如函数指针、lambda表达式等,而 std::invoke 则是一个函数模板,用于在统一的接口下调用可调用对象。因此,无论可调用对象的类型是什么,都可以使用invoke函数来调用,而不需要使用不同的语法。在C++17之前,调用不同类型的可调用对象需要使用不同的语法,比如直接调用函数、使用类对象的运算符重载操作符()来调用函数对象、使用成员函数指针来调用类成员函数等等。则适用于统一调用各种不同类型的可调用对象的场景。

2023-10-27 11:05:44 311

原创 马尔科夫链、PCV及贝叶斯动图详解

在下面的示例中,原始数据以3D的形式绘制,但可以通过不同的视角,将其投射到2D空间。在本例中,PCA变换确保水平轴PC1的变化量最大,垂直轴PC2的变化量次之,第三轴PC3的变化量最少。这是一个很好的迹象,我们所看到的结构反映了现实世界地理的一个重要事实北爱尔兰是四个国家中唯一一个不在大不列颠岛上的。当马尔科夫链处于状态“R”时,它保持在该状态的概率是0.9,状态改变的概率是0.1。同样,“S”状态保持不变的概率是0.9,过渡到“R”状态的概率是0.1。所以模拟中的每一天都有50%的概率是下雨的。

2023-10-24 19:38:06 156

原创 消息队列详解

今天我们探讨一种广泛使用的中间件:消息队列。消息队列由来已久,通常用于不同系统之间的通信。下图以星巴克的工作方式为例,来说明消息队列的概念。在星巴克,收银员接受订单并收钱,然后把顾客的名字写在咖啡杯上,交给下一个步骤。咖啡制作师拿起订单和杯子制作咖啡。然后,顾客到柜台领取咖啡。这三个步骤同步进行。收银员只需将订单以咖啡杯的形式放入,无需等待订单完成。咖啡制作师只需将制作完成的咖啡放在柜台上,就可以去制作下一杯咖啡了,无需等待顾客取走。这个过程的美妙之处在于每个步骤都是独立运行的,很像一个异步系统。

2023-10-24 14:57:54 71

原创 卡尔曼滤波基本原理详解

总的来说,卡尔曼滤波器是一个状态估计器,它利用传感器融合、信息融合来提高系统的精度。通常,我们要观测一个系统的状态,有两种手段。一种是通过系统的状态转移方程,并结合上一时刻的状态推得下一时刻的状态。一种是借助辅助系统(量测系统)的测量得到系统状态。这两种方式都有各自的不确定性,卡尔曼滤波可以将这两者做到最优结合(加权平均),使得我们估计的状态的不确定性小于其中任何一种。所以权重的选择至关重要,它意味着我们更信任哪一种方式得出的状态(当然是更加信任不确定性较小的状态)。

2023-10-23 15:39:57 1433

原创 百度秋招C++后端面经总结

服务器开始运行,创建(初始化)线程池(IO密集型,线程数n+1);创建 epoll 对连接进行监听监听到连接事件,调用线程池线程处理 http 请求读取 http 请求并对其进行解析 (空格,\r\n字段提取)返回解析结果如果析构函数不被声明成虚函数,则编译器实施静态绑定,在删除基类指针时,只会调用基类的析构函数而不调用派生类析构函数,这样就会造成派生类对象析构不完全,造成内存泄漏。

2023-10-23 15:05:03 402

原创 阿里实习JAVA后端面经总结

(略)

2023-10-17 16:15:30 153

原创 阿里春招JAVA后端面试总结

阿里巴巴春招的后端面经,问了比较多的计算机基础和数据库的内容。

2023-10-10 19:05:24 208

原创 OSI七层网络模型

封装是指在数据向目的地传输的过程中为数据添加报头。OSI 模型有七个抽象层,每个层都有不同的职责和协议。这一层有流量控制,以防止拥塞。它进一步将网段或数据报分解成更小的数据包,并使用 IP 地址找到通往最终目的地的最佳路由。设备 B 从网络接收到比特流后,会启动去封装过程,这与封装过程相反。TCP 设计用于在互联网上发送数据包,确保数据和信息在网络上成功传递。它是网络数据交换的基础,也是一种客户端-服务器协议。在数据链路层为 IP 数据报添加 MAC 报头,其中包含源 MAC 地址和目的 MAC 地址。

2023-10-09 14:18:56 203

原创 腾讯春招JAVA后端面试总结

索引可以帮助我们快速搜索数据,innodb 存储引擎用的是 b+树索引,叶子节点存放的是索引+数据,非叶子节点只存放索引。可以按照四个角度来分类索引。B+tree索引、Hash索引、Full-text索引。聚簇索引(主键索引)、二级索引(辅助索引)。主键索引、唯一索引、普通索引、前缀索引。单列索引、联合索引。聚簇索引的 B+Tree 的叶子节点存放的是实际数据,所有完整的用户记录都存放在主键索引的 B+Tree 的叶子节点里。

2023-09-27 11:24:11 395

原创 机器学习之感知机原理及Python实现

因为是线性模型,所以感知机的原理并不复杂,本节和大家来看一下感知机的基本原理和Python实现。假设数据是线性可分的,当然有且仅在数据线性可分的情况下,感知机才能奏效。所谓线性可分,也即对于任何输入和输出数据都存在某个线性超平面wx+b=0能够将数据集中的正实例点和负实例点完全正确的划分到超平面两侧,这样数据集就是线性可分的。由上可知完整的感知机算法包括参数初始化、对每个数据点判断其是否误分,如果误分,则按照梯度下降法更新超平面参数,直至没有误分类点。w和b为感知机模型参数,也是感知机要学习的东西。

2023-09-21 15:47:46 543

原创 百度春招C++后端面经总结

服务器开始运行,创建(初始化)线程池(IO密集型,线程数n+1);创建 epoll 对连接进行监听监听到连接事件,调用线程池线程处理 http 请求读取 http 请求并对其进行解析 (空格,\r\n字段提取)返回解析结果如果析构函数不被声明成虚函数,则编译器实施静态绑定,在删除基类指针时,只会调用基类的析构函数而不调用派生类析构函数,这样就会造成派生类对象析构不完全,造成内存泄漏。

2023-09-20 15:46:48 257

原创 Python多进程与多线程详细讲解与对比

单核下多线程,每次释放GIL,唤醒的那个线程都能获取到GIL锁,所以能够无缝执行,但多核下,CPU0释放GIL后,其他CPU上的线程都会进行竞争,但GIL可能会马上又被CPU0拿到,导致其他几个CPU上被唤醒后的线程会醒着等待到切换时间后又进入待调度状态,这样会造成线程颠簸(thrashing),导致效率更低。普通的函数,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(父进程)复制了一份(子进程),然后,分别在父进程和子进程内返回。一旦释放,就有人可以获得一把锁。

2023-09-15 14:39:51 346

原创 腾讯二面C++后端面经总结

腾讯春招二面面经,岗位是C++后端,考察的内容是C++、Redis、网络。

2023-09-11 10:10:51 311

原创 什么是半导体?半导体基础详解

它们分别往对方的阵地走,走着走着它们猛然发现,电子可以掉进空穴里,空穴可以完全接纳电子,在它们碰到的地方既没有了空穴,也没有了电子(因为复合了),这个区域称为。砷兄弟最外层有5个电子,其中4个电子找到了硅家的对象,另外一个电子单着了,这个电子成了无业游民,到处流窜,由于电子带有电荷,于是改变了硅家的导电性。有了P型和N型半导体的理论知识,还可以玩点复杂的,对二氧化硅表面进行改造,改造成我们想要的图形,比如画只猫,画朵花等…同样,物理学家想,既然可以拉电子多的砷元素进群,那么是否也可以拉电子少的硼原子进群?

2023-09-08 14:04:32 527

原创 腾讯实习测试开发岗位面试总结

腾讯测开的部门是用 go 语言,面试者是 java 技术栈。这场面试,最后还问了一个智力题,果然是腾讯的风格,目前只发现腾讯爱问这类题目,主要是考察面试者聪明不聪明。

2023-09-06 10:20:04 588

原创 腾讯JAVA后端秋招面试总结

腾讯秋招的面经,岗位是 java 后端开发。

2023-08-31 14:20:36 906

原创 C语言实现状态机

状态机应用很广泛,也可以锻炼我们写代码的逻辑思维,看清问题的本质,写的代码才能赏心悦目,希望大家能够多多指点,找到编程的乐趣,欣赏到编程之美。

2023-08-25 09:45:11 150

原创 字节实习后端面试总结(C++/GO)

答:两个或多个进程之间他们都在等待一些资源,然后没有办法完全释放现在已经占有的资源,但是他们需要的资源的话又被其他的进程所占有着,同时这一整个过程中你又没有办法去抢占,造成了一个循环等待的情况(请求保持,互斥,不可剥夺,循环等待)

2023-08-22 09:45:29 665

原创 C语言之extern “C“详解与使用方法

在你工作过的系统里,不知能否看到类似下面的代码。这好像没有什么问题,你应该还会想:“嗯⋯是啊,我们的代码都是这样写的,从来没有因此碰到过什么麻烦啊~”。你说的没错,如果你的头文件从来没有被任何C++程序引用过的话。这与C++有什么关系呢?看看__cplusplus(注意前面是两个下划线) 的名字你就应该知道它与C++有很大关系。__cplusplus是一个C++规范规定的预定义宏。你可以信任的是:所有的现代C++编译器都预先定义了它;而所有C语言编译器则不会。

2023-08-18 10:15:43 5027 1

原创 设计模式之解释器模式详解及实例

我们实现了三个具体的表达式类:AddExpression(用于表示加法表达式),SubtractExpression(用于表示减法表达式)和NumberExpression(用于表示数字)。非终结符表达式(Non-Terminal Expression):实现抽象表达式接口的具体类,用于解释非终结符表达式。易于扩展:当需要增加新的文法规则时,只需增加新的非终结符表达式类,无需修改原有代码,符合开闭原则。易于维护:每个文法规则对应一个非终结符表达式类,当需要修改或维护某个规则时,只需修改对应的类即可。

2023-08-17 14:48:07 803

原创 字节春招JAVA后端开发面试总结

春招的字节二面面经,岗位是后端开发。一个编程语言都没问,都是问网络+项目+mysql+redis。

2023-08-14 14:06:53 779

原创 Git详解及使用

Git是一种分布式版本控制系统,它可以不受网络连接的限制,加上其它众多优点,目前已经成为程序开发人员做项目版本管理时的首选,非开发人员也可以用Git来做自己的文档版本管理工具。大概是大二的时候开始接触和使用Git,从一开始的零接触到现在的重度依赖,真是感叹Git的强大。Git的api很多,但其实平时项目中90%的需求都只需要用到几个基本的功能即可,所以本文将从实用主义和深入探索2个方面去谈谈如何在项目中使用Git,一般来说,看完实用主义这一节就可以开始在项目中动手用。

2023-08-09 15:42:38 1379 1

原创 字节C++后端面试总结

在网络出现拥堵时,如果继续发送大量数据包,可能会导致数据包时延、丢失等,这时 TCP 就会重传数据,但是一重传就会导致网络的负担更重,于是会导致更大的延迟以及更多的丢包,这个情况就会进入恶性循环被不断地放大....所以,TCP 不能忽略网络上发生的事,它被设计成一个无私的协议,当网络发送拥塞时,TCP 会自我牺牲,降低发送的数据量。锁变量的值需要能区分来自不同客户端的加锁操作,以免在释放锁时,出现误释放操作,所以,我们使用 SET 命令设置锁变量值时,每个客户端设置的值是一个唯一值,用于标识客户端;

2023-08-08 10:10:35 493

原创 美团基础架构面经总结汇总

美团基础架构的面经。问的全是基础,一个编程语言的问都没有。

2023-08-03 14:13:19 337

原创 C++多线程基本原理详解

在C++学习过程中,要想“更上一层楼”的话,多线程编程是必不可少的一步,大家需要更多的思考是为什么这么做?这样做的好处是什么?以及多线程编程都可以应用在哪里?传统的C++(C++11标准之前)中并没有引入线程这个概念,在C++11出来之前,如果我们想要在C++中实现多线程,需要借助操作系统平台提供的API,比如Linux的,或者windows下的。C++11提供了语言层面上的多线程,包含在头文件中。它解决了跨平台的问题,提供了管理线程、保护共享数据、线程间同步操作、原子操作等类。多进程并发。

2023-08-01 15:34:52 277

原创 小红书JAVA后端一面汇总总结

小红书 2 年社招 Java 后端一面的面经,面试的风格是从一个知识一层一层深入问到底层。从 Java IO,问到 socket 底层。从 Java 内存,问到操作系统内存。所以学习知识的时候,不要只看八股文,还是需要从点到面一层层去掌握, 才能比较好应对这类的面试场景。

2023-07-31 11:19:04 793

原创 字节JAVA岗位面试总结汇总

Redis 是一种基于内存的数据库,对数据的读写操作都是在内存中完成,因此读写速度非常快,常用于缓存,消息队列、分布式锁等场景。Redis 提供了多种数据类型来支持不同的业务场景,比如 String(字符串)、Hash(哈希)、 List (列表)、Set(集合)、Zset(有序集合)、Bitmaps(位图)、HyperLogLog(基数统计)、GEO(地理信息)、Stream(流),并且对数据类型的操作都是原子性的,因为执行命令由单线程负责的,不存在并发竞争的问题。除此之外,Redis 还支持。

2023-07-26 10:44:56 534 1

原创 Socket基本原理详解

• socket中文套接字,我理解为一套用于连接的数字。并不一定准确,欢迎评论。• sock在内核,socket_fd在用户空间,socket层介于内核和用户空间之间。• 在操作系统内核空间里,实现网络传输功能的结构是sock,基于不同的协议和应用场景,会被泛化为各种类型的xx_sock,它们结合硬件,共同实现了网络传输功能。

2023-07-24 14:04:07 593 1

原创 Python之Pandas使用详解

在数据分析当中,我们通常使用 Pandas 来做数据清理的工作。在真实的工作生活中,我们拿到的数据往往都是不整洁的,空值、重复值、无效值等等信息都会干扰我们的分析,此时我们就需要按部就班的完成数据的清理。数据清理是数据分析中非常重要的一步,也是非常繁琐的一步,当然,在你掌握了 Pandas 库之后,你就好像是得到了一把削铁如泥的宝剑,数据清理工作的效率会大大提高。

2023-07-21 10:18:21 3380 1

原创 Python之Numpy使用详解

NumPy 不仅仅是 Python 科学计算中使用最多的库,还是 SciPy,Pandas 等库的基础,它提供了更加高级有效的数据结构,是专门为科学计算而生的库。NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 MatLab,是一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习。

2023-07-20 10:51:04 1333

原创 腾讯C++岗位面试问题汇总

哈希表的时间复杂度为O(1)是因为它使用了一种叫做哈希函数的方法来直接计算出数据应该存储在哪个位置,而不需要逐个检查每个位置。这就像是你有一个巨大的文件柜,每个抽屉都有一个唯一的编号,你可以直接通过编号找到你需要的文件,而不需要从第一个抽屉开始逐个查找。当你插入、删除或查找一个元素时,哈希表首先使用哈希函数计算出元素的哈希值,然后使用这个哈希值作为索引直接访问到数组中的相应位置。因此,这些操作的时间复杂度都是O(1)。

2023-07-19 16:36:34 768

原创 Python入门与基础语法详解

requests 库,是一个非常常用的 HTTP 网络请求库。此时的 r 是一个 response 对象,我们可以从中获取到相关信息r.text # 获取响应内容r.content # 以字节的方式读取响应信息response.encoding = "utf-8" # 改变其编码html = response.text # 获得网页内容binary__content = response.content # 获得二进制数据。

2023-07-18 14:02:04 255 1

原创 QT之智能指针

EmployeeData 必需继承自QSharedData,QSharedData类是共享数据的基类,它提供引用计数,它只有默认的构造函数,拷贝构造函数和析构函数,一般情况下,我们有必要自己重写这几个函数。QSharedPointer 行为最接近原始指针,是最像指针的"智能指针", 与 QScopedPointer 一样包装了new操作符在堆上分配的动态对象,但它实现的是引用计数型的智能指针 ,可以被自由地拷贝和赋值,在任意的地方共享它,当没有代码使用(引用计数为0)它时才删除被包装的动态分配的对象。

2023-07-17 14:00:09 745 1

原创 Qt之线程的同步和互斥

线程锁能够保证临界资源的安全性,通常,。A、系统中存在多个临界资源且临界资源不可抢占B、线程需要多个临界资源才能继续执行A、对使用的每个临界资源都分配一个唯一的序号B、对每个临界资源对应的线程锁分配相应的序号C、系统中的每个线程按照严格递增的次序请求临界资源提供了线程同步的手段。使用线程的主要想法是希望它们可以尽可能并发执行,而一些关键点上线程之间需要停止或等待。例如,假如两个线程试图同时访问同一个全局变量,结果可能不如所愿。

2023-07-11 13:57:47 751 1

原创 Python的Lambda函数详解及使用

与其他的使用常规 def 关键字创建的函数不同,lambda 函数没有名字,这也是为什么有时它们被称为匿名函数的原因。对 lambda 函数命名的唯一作用可能是出于教学目的,以表明 lambda 函数的确是和其他函数一样的函数——可以被调用并且具有某种功能。lambda 函数最常见的使用场景是将它作为一些内置工具函数中 key 的实参,比如上面展示的 sorted() 和 max()。与此相关,如果您想多次使用 lambda 函数,最佳实践是使用通过 def 定义的允许使用文档字符串的常规函数。

2023-07-07 09:56:49 4316

基于Python的MLP多层感知器及MINIST数字分类实现实例

使用Theano的多层感知器,多层感知器是一个逻辑回归器,它不是将输入输入到逻辑回归中,而是插入一个中间层,称为隐藏层,它具有非线性激活函数(通常是tanh或sigmoid)。我们可以使用许多这样的隐藏层来加深架构。 本实例还将解决MNIST数字分类问题。

2023-08-10

基于Python实现手写数字识别的KNN算法实例

基于Python实现手写数字识别的KNN算法实例

2023-07-27

Python实现CNN LeNet5卷积神经网络实例

Python实现CNN LeNet5卷积神经网络实例资源介绍LeNet5神经网络架构,使用Theano。LeNet5是一个卷积神经网络,适用于分类图像。资源展示了如何构建体系结构,并且附带了所有你需要的超参数来重现论文的MNIST结果。 这个实现通过以下方式简化了模型: - LeNetConvPool不实现特定位置的增益和偏置参数 - LeNetConvPool不实现平均池化,它实现池化 -数字分类是通过逻辑回归实现的,而不是RBF网络 - LeNet5在第二层不是完全连接的卷积

2023-07-18

Matlab实现多类型卡尔曼滤波实例代码

Matlab实现多类型卡尔曼滤波实例代码:1.AvgFilter 2.MovAvgFilter 3.LPF 4.SimpleKalman 5.DvKalman 6.TrackKalman 7.ARS 8.EKF 9.UKF 10.HPF 11.CompFilter

2023-07-04

32*32矩阵手写数字集合数据集

32*32数字矩阵集合数据集

2023-07-04

ULN2003A驱动四相5线步进电机 原理图 说明书 实例例程等

四相5线步进电机实例例程,本例程这里介绍输出两相四拍方式驱动:A-B-C-D 通过扩展板ULN2003A驱动电机,因ULN2003A是高电平驱动,因此在初始化时,将驱动的四脚拉低 内容包含源码、 原理图、说明书等。

2023-07-03

Python深度学习CNN卷积神经网络模型训练做人脸识别实例

Python深度学习CNN卷积神经网络模型训练做人脸识别,基于python+numpy+theano+PIL开发,采用类似LeNet5的CNN模型,应用于olivettifaces人脸数据库,实现一个针对olivettifaces图像数据库的CNN模型。含各模块详细注释解释。

2023-06-30

Python KMeans算法实现实例

KMeans算法,二分KMeans算法 首先从n个数据对象任意选择 k 个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。一般都采用均方差作为标准测度函数. k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。

2023-06-26

Matlab短时傅里叶变换与小波变换实现实例

1、短时傅里叶变换 包括 正弦信号、不同hamming窗口、不同信号的短时傅里叶变换 2、小波变换,利用matlab函数,生成不同类型的小波 (1) mexihat (2) meyer (3) Haar (4) db (5) sym (6) morlet 3、一维连续小波变换 利用连续小波变换函数cwt对带白噪声的正弦信号及正弦加三角波进行变换。在对这两组信号利用wavedec函数及db5进行5层和6曾的分解,并利用wrcoef函数对低频和高频分别进行重构。

2023-06-25

C51控制ULN2003芯片驱动步进电机正反转停止实验实例

通过C51控制ULN2003芯片驱动步进电机正反转停止,四相八拍步进电机,按实验板上的K1按键步进电机正转,按实验板上的K2按键步进电机反转,按实验板上的K3按键步进电机停止,能够控制电机运转圈数,且电机转速可调,同时可驱动蜂鸣器同时响起。

2023-06-23

Topcon拓普康MAGNET Field中文说明书

Topcon拓普康MAGNET Field机载软件中文使用手册,适用于Window CE全站仪系列。 第一部分: MAGNET Field 机载软件快速操作入门 第二部分: MAGNET Field 机载软件参考手册

2023-06-20

机器学习技法Primal SVM线性支持向量机原理详解PPT

机器学习技法线性支持向量机原理详解PPT,详细介绍了硬间隔SVM的思想、原始问题和对偶问题,核技巧是如何在对偶问题中应用的,其他核函数,以及软间隔SVM的整套流程;除此之外还有将核技巧推广应用到其他模型的实例。有关线性支持向量机(Linear Support Vector Machine)。先从视觉角度出发,希望得到一个比较“胖”的分类面,即在分类正确的前提下,满足所有的点距离分类面都尽可能远。然后通过一步步推导和简化,最终把这个问题转换为标准的二次规划(QP)问题。二次规划问题可以使用Matlab等软件来进行求解,得到我们要求的w和b,确定分类面。这种方法背后的原理其实就是减少了dichotomies的种类,减少了有效的VC Dimension数量,从而让机器学习的模型具有更好的泛化能力。

2023-06-19

机器学习技法Kernel SVM核支持向量机基本原理详解PPT

机器学习技法Kernel SVM核支持向量机基本原理详解PPT,主要介绍了Kernel SVM和核函数Kernel Function的基本概念及理论,主要介绍了Polynomial Kernal、Gaussian Kernel等内容。

2023-06-19

机器学习之Dual SVM对偶支持向量机基本原理详解PPT

机器学习之Dual SVM对偶支持向量机基本原理详解PPT,详细讲解有关Dual SVM的基本原理,推导dual SVM,通过二次规划来解决支持向量机的问题。

2023-06-19

Python分别通过SMO和QP实现SVM支持向量机的实例

总结了libsvm和liblinear的使用方法,并包含使用的实例。 用SMO的方法实现了SVM支持向量机实例。 用二次编程(QP)方法实现了SVM支持向量机实例。 使用到的数据集均包含在内。

2023-06-16

Python搭建决策树预测模型对ID3算法的实现实例

Python搭建决策树预测模型对ID3算法的实现实例,导入并创建树。它使用DecisionTree.py实现ID3算法。基于该树生成适当的输出,对天气等数据做出结果预测。

2023-06-14

Python多线程网络爬虫小工具

Python多线程网络爬虫小工具,能够使用此工具收集各个网络链接。

2023-06-06

个人使用精选程序员简历模板

个人找工作时使用的程序员简历模板,都是个人精选过后干净整洁大方稳重的模板。 包括:C++程序员简历模板、Python开发工程师简历简约模板以及各个方向均通用的简历模板等。

2023-06-06

C51单片机定时中断控制按键点亮流水灯实验课程程序设计

基于C51单片机定时器中断控制的独立式键盘扫描实验,实现流水灯的正向和反向点亮与熄灭。

2023-06-05

软件版本号命名规则规范及各阶段标识方法

软件版本号命名规则规范及各阶段标识方法

2023-06-05

Thundercomm C865 数据手册

TurboX C865 SOM是一款可生产的小型(45mm×56mm)预认证(CE、FCC、ROHS)模块,搭载7纳米高通骁龙QCS8250高级处理器,通过PCIE接口支持SA/NSA双模5G网络和Thundercomm TurboX T55模块。C865 SOM适用于高性能低功耗的机器人或XR设备,提供了经过预测试的硬件和软件操作系统/板级支持包(BSP)、丰富的接口和有效的自动音量限制系统(AVLS),以及参考IO板,有助于加快产品的研发。

2023-06-02

MFC MDI初级框架搭建及简单画图功能实现

MFC MDI初级框架搭建及简单画图功能实现,基于VS2012,搭建MDI的多文档框架,实现简单的画图功能。

2023-06-01

Python解析和生成Ublox GPS/GNSS协议工具

使用Python3编写,支持对Ublox 如F9P等记录的NMEA, UBX和RTCM3等协议解析。

2023-05-31

空空如也

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

TA关注的人

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