自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (9)
  • 收藏
  • 关注

原创 ArduPilot 教程(2):运行第一个 SITL 无人机仿真

在上一篇博客中,我们介绍了如何在 Ubuntu 22.04 下安装 Ardupilot SITL 仿真环境。在这一篇 blog 中,我们将自己运行一个 Copter 的 SITL 仿真。Ardupilot 是基于 MAVLink 通信协议的,而操作仿真无人机执行任务需要一个地面站 (GCS)和 Ardupilot SITL 进行配合。所以在运行仿真之前,我们先简单介绍一下 MAVLink 通信协议和 MAVProxy 地面站。

2025-06-24 02:08:34 1088

原创 GNU Octave 基础教程(8):GNU Octave 常用数学函数

GNU Octave 内置了大量数学函数,涵盖初等数学、线性代数、复数运算、统计函数等,非常适合科研、工程计算使用。本节将系统地梳理 Octave 中最常用的数学函数,并附上示例代码与输出结果。

2025-06-21 23:04:23 217

原创 GNU Octave 基础教程(4):变量与数据类型详解(二)

在 Octave 中,普通数组只能存储一种类型的元素(如全是数值或全是字符)。而cell 数组可以存储不同类型的数据,比如:一个 cell 元素是字符串另一个是数值另一个是矩阵就像“容器中的容器”。结构体是一种以字段(field)方式组织数据的容器。适合表示带属性的对象,例如:学生、员工、实验结果等。类型特点应用场景cell存储混合类型内容、矩阵、字符串等表格行列数据、灵活容器struct用字段组织数据,有语义对象、记录、配置、JSON风格数据掌握cell和struct。

2025-06-20 23:51:49 260

原创 GNU Octave 基础教程(2):第一个 Octave 程序

我们来更进一步,可以用函数方式写一个“智能问候”程序。在 "C:\Users" 目录下新建文件greet.m% Usage:% Inputs:\n", name);end这里我们用 function 关键字定义了一个名为 greet 的函数。这个函数有一个参数,名称为 name。这个函数执行一个 printf() 命令,函数的结尾处用关键字 end 标注。printf() 函数中的 %s 表示“将这里替换为一个字符串变量”, 也就是 name。

2025-06-20 22:25:35 823

原创 GNU Octave 基础教程(3):变量与数据类型详解(一)

在 Octave 中,变量的定义非常直观,只需要使用赋值符号x = 10;这些语句分别创建了一个整数变量x,一个字符串变量name,以及一个浮点数变量。本文介绍了 GNU Octave 中最基本的变量定义方式与数据类型(不包括数组和矩阵)。初学者可以从数值、布尔值、字符串开始,逐步熟悉 Octave 的语法和执行流程。下一篇我们将进入数组和矩阵的世界,进一步探索 Octave 的强大功能。

2025-06-19 00:04:31 308

原创 Controller Area Network (CAN) 通信机制简介

Controller Area Network (CAN) 通信机制简介

2025-06-18 22:41:00 937

原创 GNU Octave 基础教程(1):Ubuntu 22.04 与 Windows 11 安装 Octave 全流程

GNU Octave 是一个开源的高级数值计算语言,语法高度兼容 MATLAB,广泛用于科学计算、数值分析、机器学习、控制系统和信号处理等领域。GNU Octave 支持多种平台,这里我们介绍如何在 Ubuntu 22.04 和 Windows 11 上安装 GNU Octave.

2025-06-17 23:11:16 1184

原创 ArduPilot 教程(1):在 Ubuntu 22.04 上安装与运行 SITL 仿真环境

ArduPilot 是一个开源、全功能、可扩展的无人系统自动驾驶软件,支持多种载具类型,包括多旋翼无人机,固定翼无人机,水上无人船和水下无人机器设备。SITL 是 ArduPilot 提供的一种,允许你在不使用真实硬件的情况下,在本地机器运行 ArduPilot 代码并测试其行为。这篇教程将讲解如何安装 AruduPilot 及其 SITL 仿真代码。在成功安装和构建程序后,将启动一个基于多旋翼无人机的仿真。

2025-06-17 07:31:24 1441

原创 三十天玩转 Octave (1): 绘图指南

通过 Octave 的强大绘图功能,你可以轻松实现 2D 和 3D 图形的可视化,包括折线图、散点图、柱状图、直方图和极坐标图等。Octave 的绘图功能类似 MATLAB,适合数据分析、数学建模和科学计算的可视化需求。掌握这些基础后,你可以更高效地展示数据并得出可视化结论。如果你有更具体的绘图需求或问题,随时可以提出来,我可以为你提供更详细的指导!

2025-05-10 23:10:46 611 2

原创 动态规划不再难:一步一步教你攻克经典问题 (3)

在这一篇博客中,我们介绍了三个新的动态规划问题,完全背包,矩阵路径计数,和编辑距离计算。小伙伴们应该对动态规划的解题过程有了更深刻的认识。到这里我们已经对DP算法有了不错的理解,但是如果是参加面试的话还需要更多的练习。首先,面试官会经常要求对空间复杂度进行优化。另外面试过程中,面试官会将基础问题进行变种,以增加算法设计的难度。在今后的blog中,我会找一些 Leetcode 中的面试题,来为大家进行讲解。动态规划不再难:一步一步教你攻克经典问题 (1)-CSDN博客。

2025-05-10 15:21:11 1187 3

原创 算法与数据结构 - 二叉树结构入门

二叉树是计算机科学中最基础且重要的树形数据结构之一,非空时由根节点和两个不相交的子树(左子树和右子树)组成。树中每个节点(包括根节点)最多有两个子节点(称为左子节点和右子节点),普通二叉树无其他约束。我们可以看到 AVL 树和红黑树其实是二叉搜索树的变种。AVL 和 红黑树的代码相对比较复杂,涉及复杂的旋转问题。具体的代码,将在之后的博文里讨论。

2025-05-09 23:51:07 1247 1

原创 动态规划不再难:一步一步教你攻克经典问题 (2)

本文总结了三个动态规划问题的基本解法,最长公共子序列,矩阵最短路径,和找零钱问题。通过不停的练习,可以锻炼大家对于算法递推公式的推导能力,更精确的把握如何设置边界条件和起始条件。最后,希望大家能更好的理解动态规划这个算法。动态规划不再难:一步一步教你攻克经典问题 (1)-CSDN博客。

2025-05-09 15:44:49 1095 4

原创 算法与数据结构 - 常用图算法总结

在图论中,图算法非常重要,广泛应用于计算机科学、网络分析、社交网络、地理信息系统等领域。

2025-05-08 23:56:28 1045

原创 动态规划不再难:一步一步教你攻克经典问题 (1)

动态规划(Dynamic Programming,简称DP)是一种通过将复杂问题分解成更小的子问题来求解的算法设计方法。它适用于求解具有重叠子问题和最优子结构性质的问题。动态规划通过记录已经计算过的子问题的解,避免了重复计算,从而大大提高了计算效率。

2025-05-08 23:50:32 2473 3

原创 知识复习 - Python 原生数据类型

数值类型intfloatcomplex字符串类型str序列类型listtuplerange集合类型setfrozenset映射类型dict布尔类型bool二进制类型bytesbytearraymemoryview空值类型None每种数据类型都有其独特的用途,根据不同的需求可以选择合适的数据类型来存储和操作数据。如果你有其他关于 Python 数据类型的具体问题,随时告诉我!

2025-05-07 23:38:05 955

原创 初创企业开源许可证选择指南:如何规避风险并加速发展?

目录1. 为什么初创企业要特别关注开源许可证?2. 常见的开源许可证比较分析3. 如何选择适合企业的许可证?2.1 原型验证阶段(0-1年)2.2 产品增长阶段(1-3年)2.3 融资/收购准备阶段4. 企业特殊场景解决方案5. 网上常见问题解答(FAQ)6. 结语:许可证是战略选择工业与商业软件对于初创企业是一笔很大的开销,所以很多创业公司更倾向于使用开源免费的软件与框架进行产品开发。在资源与资金有限的情况下,开源软件是快速构建产品的利器,能帮助创业公司快速发展。但是很多企业忽略了开源软件与框架的许可证要

2025-05-07 23:27:38 930

原创 Python 3 中 cls 和 self 参数的使用及注意事项

self 和 cls 参数在定义类的时候经常使用,但是很多小伙伴对其一知半解,现在明白了吗?self是实例方法的第一个参数,指代当前对象实例,可以通过它访问实例的属性和方法。cls是类方法的第一个参数,指代当前类本身,可以通过它访问类的属性和类方法。self和 cls都是 Python 面向对象编程中的重要概念,帮助区分实例与类的关系。参考文献python中cls和self的不同及使用_python cls和 self-CSDN博客。

2025-05-06 23:35:29 789

原创 GNU Octave 主要扩展包介绍:提升数值计算,数据分析,及图像处理能力

Octave 是一个开源的数值计算软件,功能与 MATLAB 类似,广泛应用于科学计算、工程学以及数据分析领域。尽管 Octave 本身已经拥有强大的功能,但通过使用扩展包(Octave Packages),用户可以进一步提升 Octave 的能力,满足更多的需求。本文将介绍 Octave 的一些主要扩展包及其用途,帮助读者更好地利用 Octave 进行各类计算任务。Octave 的扩展包是由 Octave 社区或其他开发者开发的,它们通过提供额外的功能模块来增强 Octave 的计算能力。

2025-05-06 22:40:30 1050

原创 知识复习 - Python 3 面向对象编程

使用class关键字定义类,类的属性和方法可以通过缩进块来定义。构造函数__init__用来初始化对象的属性。class Car:# 构造函数,初始化属性self.make = make # 品牌self.model = model # 型号self.year = year # 年份# 方法:描述对象的行为# 创建对象# 调用方法car1.display_info() # 输出: 2020 Toyota Corolla2. 类的属性和方法属性:类中的变量,用于保存对象的状态。方法。

2025-05-05 23:07:26 720

原创 GNU Octave 简介:一款强大的开源科学计算工具

GNU Octave 是一款高层次的解释型编程语言,主要用于数值计算。其语法与 MATLAB 高度兼容,是 MATLAB 用户的理想替代工具。Octave 提供了广泛的数学功能,支持从基础算术到复杂数学建模和数据可视化的各种任务。与其他需要编写复杂代码的编程语言不同,Octave 的语法设计非常直观,适合无论是初学者还是资深专家使用。

2025-05-05 22:55:43 2000

原创 Python 3.x 自定义装饰器 常用应用场景 - 2 (重试机制 输入验证 返回值检查 与 参数传递)

4. 带参数的装饰器。

2025-05-04 23:18:45 162 2

原创 Python 3.x 自定义装饰器 常用应用场景 - 1(日志记录 计时 缓存 与 权限控制)

自定义装饰器在 Python 中非常灵活,能够增强和修改函数或方法的行为。它们常用于以下几种场景:日志记录、缓存、权限控制、性能测量、验证等。下面列出了一些常见的装饰器方法与功能。

2025-05-04 23:05:25 475 1

原创 Python 3.x 内置装饰器 (4) - @dataclass

对于可变类型(如 list、dict 等),如果你在类中直接给它们赋默认值,你可能会遇到问题,因为默认值会被共享到所有实例中。为了解决这个问题,应该使用 field(default_factory=...) 来为每个实例提供新的默认值。@dataclass 是Python 3.7 引入的一个装饰器,用来简化创建数据类(主要存储数据的类)的过程。总之,@dataclass 是一个特别强大,用法又特别灵活的类,小伙伴们掌握了多少。可以让你控制如何处理每个字段,例如设置默认值、指定字段是否可修改等。

2025-05-03 23:40:57 807

原创 Python 3.x 内置装饰器 (3) - @abstractmethod @wraps

2. @functools.wraps 是一个常用的装饰器,用于在自定义装饰器时保留原函数的元数据(如文档字符串、函数名等)。当你写自己的装饰器时,使用 @wraps 可以确保装饰后的函数看起来和原函数一致。1. @abstractmethod 装饰器用在抽象类中,用于声明一个抽象方法。函数原有的名称与文档被自定义的 wrapper 取代。@abstractmethod 和 @wrap 是两个特别常用的内置装饰类,小伙伴们明白了吗。@wrap 装饰保留了函数原有的名称和文档。装饰器确保所有继承了。

2025-05-03 22:36:25 411

原创 Python 3.x 内置装饰器 (2) - @cached_property and @lru_cache

cache_property: 这个装饰器件程序运行结果如下:我们可以看到,当第二次调用fibonacci方法时,我们不再重新进行递归计算,而是直接调用缓存中存储的上一个结果。@lru_cache:这个装饰器 is used to cache the results of expensive or frequently called functions. The acronymstands for@lru_cache。

2025-05-02 23:55:49 2112

原创 Python 3.x 内置装饰器 (1) - @staticmethod @classmethod @property

和静态方法(@staticmethod)与类方法(@classmethod)对应的是实例方法。实例方法接收类的一个实例(self)做为参数,允许我们访问该实例的属性。1. @staticmethod:用于在一个类中定义静态方法。3. @property:将方法变成属性调用。2. @classmethod:定义类方法。

2025-05-02 22:39:36 275

原创 知识复习 - Pytorch导出ONNX模型 动态输入参量

在使用Pytorch导出ONNX模型的时候,经常需要考虑动态维度,比如可变的batch size以及图片的输入与输出尺寸。我们可以通过修改torch.onnx.export函数的dynamic_axes来考虑动态维度。这里给一个简单的例子。参数中的 0、2、3 表示相应的维度设置为动态值;最后我们用onnxruntime 来测试导出的。

2025-04-30 23:43:35 400 4

原创 知识复习 - Pytorch导出ONNX模型 多输入参量

中,我们介绍了如何导出单静态输入Pytorch模型的ONNX格式。然而,有很多AI模型需要多个输入参数来进行推理,比如 BERT。这时候我们在导出ONNX模型的时候就要对这些输入参量进行处理,把他们放入一个Python元组中。整体来讲并没有什么难度,只是将输入参量按顺序放入了元组中并对torch.onnx.export函数的参数进行了简单修改。但是如果不注意,导出模型的时候可能会卡住,耽误很多时间。

2025-04-29 00:50:24 577 2

原创 知识复习 - Pytorch导出ONNX模型以及使用Netron进行ONNX模型的可视化

Open Neural Network Exchange(ONNX)是一种开放的深度学习模型交换格式。ONNX格式可以实现不同框架(比如Pytorch和Tensorflow)之间的模型互操作和跨平台部署。使用ONNX格式可以还可以提高模型的推理效率,并有广泛的社区支持。

2025-04-28 00:16:08 886

打印机清零软件 P50清零软件无解压密码

打印机P50清零软件 爱普森 EPSON 无需解压密码 ,放入任意文件夹就可以使用。

2014-03-18

photoshop5.0

photoshop5.0短小精的东西,比高版本占用更小的资源.是我比较喜欢且认为比较好的东西。

2010-05-03

photoshop5.0-3

photoshop5.0-3短小精的东西,比高版本占用更小的资源.是我比较喜欢且认为比较好的东西。

2010-05-03

photoshop5-1

photoshop 5.0 -1photoshop 5.0 共五部分photoshop 5.0 -1photoshop 5.0 共五部分

2010-05-03

photoshop5.0C

短小精的东西,比高版本占用更小的资源.是我比较喜欢且认为比较好的东西。

2010-05-03

photoshop5-4

photoshop5-4photoshop5-4photoshop5-4photoshop5-4

2010-05-03

snoy 笔记本驱动

PCG-R505 这可是不太好找的驱动哟 我找了很久才找到。

2010-04-28

人事管理软件源码人事管理软件源码

人事管理源码 人事管理软件源码人事管理软件源码人事管理软件源码人事管理软件源码人事管理软件源码人事管理软件源码人事管理软件源码人事管理软件源码人事管理软件源码人事管理软件源码人事管理软件源码人事管理软件源码人事管理软件源码人事管理软件源码人事管理软件源码

2009-06-20

人事管理系统源码分卷1

人事管理系统源码分卷1 因为不以能上传大于15M的内容

2009-06-20

空空如也

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

TA关注的人

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