<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[dkkfff的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/dkkfff</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; dkkfff]]></copyright><item><title><![CDATA[imu和GPS融合-------kalman滤波理解]]></title><link>https://blog.youkuaiyun.com/dkkfff/article/details/120363709</link><guid>https://blog.youkuaiyun.com/dkkfff/article/details/120363709</guid><author>dkkfff</author><pubDate>Sat, 18 Sep 2021 11:23:48 +0800</pubDate><description><![CDATA[kalman滤波:
一、预测阶段
根据历史状态信息进行当前时刻的状态预测  (①预测状态②预测协方差----包含了过程噪声)
二、更新/滤波阶段
根据观测值或参考值，对预测值进行更新(①卡尔曼增益计算-----包含测量噪声②状态更新:基于预测值和观测值的误差进行预测值更新—系数就是增益K③协方差矩阵更新)
总结:所以即使传感器观测值有很大误差，但由于有历史信息的预测，所以kalman滤波具有很强的鲁棒性
定位:
imu更新快，但有误差；GPS精度高，有延迟
预测阶段采用惯导信息进行预测，更新阶段采用GPS信]]></description><category></category></item><item><title><![CDATA[python实战——读取文件，进行分块保存]]></title><link>https://blog.youkuaiyun.com/dkkfff/article/details/119329176</link><guid>https://blog.youkuaiyun.com/dkkfff/article/details/119329176</guid><author>dkkfff</author><pubDate>Mon, 02 Aug 2021 17:22:36 +0800</pubDate><description><![CDATA[def SaveConversation(line,boy,girl):
    # 进行字符串分割
    if line[:4] = "小甲鱼:":
        boy.append(line[4:]+"\n")
    else:
        girl.append(line[4:]+"\n")
    return boy,girl
    
    
def Savefile(boy,girl,count):
    boy_name_file = open("boy_"+str(co..]]></description><category></category></item><item><title><![CDATA[MOOC课程python语言程序设计——7 文件]]></title><link>https://blog.youkuaiyun.com/dkkfff/article/details/119253266</link><guid>https://blog.youkuaiyun.com/dkkfff/article/details/119253266</guid><author>dkkfff</author><pubDate>Fri, 30 Jul 2021 18:00:20 +0800</pubDate><description><![CDATA[open()创建文件对象：可选择原有的文件（可读r）或者创建新的文件（可写a/w）

文件对象自身是可迭代的


打印每一行的内容可以直接用：
f = open("fhshka.txt")
for each_line in f:
    print(each_line)

不需要通过list(f)将文件转换成列表，再打印每一行


然后对文件对象进行一系列的读写操作，将读写内容赋值给其他变量，文件对象本身不会改变（写会改变文件的内容）。
任何的读写，文件指针都会相应移动。


eg: f.read()两次调]]></description><category></category></item><item><title><![CDATA[多个并列的if条件句和if-elif的区别]]></title><link>https://blog.youkuaiyun.com/dkkfff/article/details/119186332</link><guid>https://blog.youkuaiyun.com/dkkfff/article/details/119186332</guid><author>dkkfff</author><pubDate>Wed, 28 Jul 2021 18:02:04 +0800</pubDate><description><![CDATA[多个并列if条件句：程序会对每一个if条件句都执行。判断条件真假，为真时，执行if后面的语句块；然后再接着对下一个if条件句进行判断，再执行
if-elif：不是并列关系，依次判断，当条件为真执行语句块后，退出判断，不会再执行接下来的elif语句。

实例：去除出现两次及以上的数字（注意不是去重）
nums = [0,1,2,3,4,5,5,3,1]
num_sigle = []
for num in nums:
    if num not in num_sigle:
        num_sigle.]]></description><category></category></item><item><title><![CDATA[浅拷贝和深拷贝]]></title><link>https://blog.youkuaiyun.com/dkkfff/article/details/119185016</link><guid>https://blog.youkuaiyun.com/dkkfff/article/details/119185016</guid><author>dkkfff</author><pubDate>Wed, 28 Jul 2021 17:48:59 +0800</pubDate><description><![CDATA[python：
①复制方法.copy——浅拷贝，只是复制数据，指针（内存地址）是改变的
②赋值 =——深拷贝，即地址是绑定在一起的
# 浅拷贝和深拷贝
a = {1:'one',2:'two',3:'three'}
b = a.copy()
c = a
print(a,b,c)
c= {} #！！！！！！！！！！！！！！！！
print(a,b,c)


输出：
{1: ‘one’, 2: ‘two’, 3: ‘three’} {1: ‘one’, 2: ‘two’, 3: ‘three’} {1: ‘on]]></description><category></category></item><item><title><![CDATA[迭代和递归]]></title><link>https://blog.youkuaiyun.com/dkkfff/article/details/119146781</link><guid>https://blog.youkuaiyun.com/dkkfff/article/details/119146781</guid><author>dkkfff</author><pubDate>Wed, 28 Jul 2021 09:21:37 +0800</pubDate><description><![CDATA[应用实例：Fibonacci sequence——斐波那契数列（黄金分割数列），计算小兔子的出生
问题：兔子在出生两个月后才具有繁殖能力。一对兔子每个月能生出一对小兔子，假设所有兔子都不死，那么20个月后可以繁殖出多少对兔子？

分析：前两项之和，构成了最后一项。
数学表达式为：

python代码实现:
迭代实现：
# 输出斐波那契数列的最后一个数————迭代实现
def febonacci(n):
    n1 = 1 
    n2 = 1 
    n3 = 1 
    if n &lt; 1:
]]></description><category></category></item><item><title><![CDATA[list.sort(key=lambda x:x[1],reverse=ture)]]></title><link>https://blog.youkuaiyun.com/dkkfff/article/details/117928974</link><guid>https://blog.youkuaiyun.com/dkkfff/article/details/117928974</guid><author>dkkfff</author><pubDate>Tue, 15 Jun 2021 17:12:34 +0800</pubDate><description><![CDATA[.sort和sorted是对python中的列表类型进行排序
list.sort(key=lamda, x:x[1],reverse=False) # 默认升序排列，注意list是列表的数据类型
sorted(&lt;排序对象&gt;，key=lamda,x:x[1],reverse=False) # 注意排序对象是列表的数据类型

这里面的x可以是任意字段，eg：y:y[1]
后面的索引字段1是按照第二维来排序，可以切换维度

...]]></description><category></category></item><item><title><![CDATA[理解Matplotlib.pyplot.plot()函数中的关键字参数zorder]]></title><link>https://blog.youkuaiyun.com/dkkfff/article/details/117565657</link><guid>https://blog.youkuaiyun.com/dkkfff/article/details/117565657</guid><author>dkkfff</author><pubDate>Fri, 04 Jun 2021 16:32:36 +0800</pubDate><description><![CDATA[zorder用来控制绘图顺序，其值越大，画上去越晚，线条的叠加就是在上面的

]]></description><category></category></item><item><title><![CDATA[Matplotlib中pyplot的fill_between总结]]></title><link>https://blog.youkuaiyun.com/dkkfff/article/details/117562285</link><guid>https://blog.youkuaiyun.com/dkkfff/article/details/117562285</guid><author>dkkfff</author><pubDate>Fri, 04 Jun 2021 15:43:30 +0800</pubDate><description><![CDATA[需要将绘图中一部分数据用颜色块圈出，于是采用了fiil_between方法，记录一下：
pyplot.fill_between(x,y1,y2, facecolor='gray', alpha=0.3)
x：此参数表示覆盖的区域，如果选择x，则是沿着x轴全部覆盖了;也可以选择部分的x区域
y1： 覆盖区域的下边界值
y2：覆盖区域的上边界值
facecolor：覆盖区域的颜色
alpha： 覆盖区域色块的透明度
1.曲线覆盖：让y轴以下的区域全部显示
plt.fill_between(x,0,y,facec]]></description><category></category></item><item><title><![CDATA[python中列表和数组的区别]]></title><link>https://blog.youkuaiyun.com/dkkfff/article/details/117443711</link><guid>https://blog.youkuaiyun.com/dkkfff/article/details/117443711</guid><author>dkkfff</author><pubDate>Tue, 01 Jun 2021 15:11:55 +0800</pubDate><description><![CDATA[列表list是python的内置数据类型，python本身是没有数组的

列表中数据类型可以是不同的。整数、字符串等可以放在同一个列表中
列表的存储是分为单独存储数据、数据类型（用指针），消耗存储和CPU

数组是numpy库提供的

numpy.array中存放相同类型的数据。可以是列表，元组等
numpy.array的储存、运行、数组间的计算等效率都要远高于列表


...]]></description><category></category></item><item><title><![CDATA[基于模型的方法和免模型的方法]]></title><link>https://blog.youkuaiyun.com/dkkfff/article/details/117337749</link><guid>https://blog.youkuaiyun.com/dkkfff/article/details/117337749</guid><author>dkkfff</author><pubDate>Thu, 27 May 2021 21:03:32 +0800</pubDate><description><![CDATA[参考
RL 算法可以分为基于模型的方法（Model-based）与免模型的方法（Model-free）。前者主要发展自最优控制领域。通常先通过高斯过程（GP）或贝叶斯网络（BN）等工具针对具体问题建立模型，然后再通过机器学习的方法或最优控制的方法，如模型预测控制（MPC）、线性二次调节器（LQR）、线性二次高斯（LQG）、迭代学习控制（ICL）等进行求解。而后者更多地发展自机器学习领域，属于数据驱动的方法。算法通过大量采样，估计代理的状态、动作的值函数或回报函数，从而优化动作策略。
基于模型的方法一般先从数]]></description><category></category></item><item><title><![CDATA[PyTorch快速入门]]></title><link>https://blog.youkuaiyun.com/dkkfff/article/details/117323283</link><guid>https://blog.youkuaiyun.com/dkkfff/article/details/117323283</guid><author>dkkfff</author><pubDate>Thu, 27 May 2021 11:46:33 +0800</pubDate><description><![CDATA[一、官方Tutorials
第一部分是快速阅读官方链接：官方tutorials，前提是已经知道numpy和基础的python知识。接下来是对官方文档做的阅读笔记，持续更新
张量（Tensors）
1.张量是特殊数据类型，可以在GPU或其他硬件加速器上运行，用于表示在PyTorch中的数据。
2.和Numpy的数组相似，张量和数组可以共用底部内存
3.自动微分

初始化张量：

从数据初始化：torch.tensor(data)
从数组初始化：torch.from_numpy(np.array(data))
]]></description><category></category></item><item><title><![CDATA[PyTorch安装]]></title><link>https://blog.youkuaiyun.com/dkkfff/article/details/117307040</link><guid>https://blog.youkuaiyun.com/dkkfff/article/details/117307040</guid><author>dkkfff</author><pubDate>Wed, 26 May 2021 22:23:29 +0800</pubDate><description><![CDATA[在 设备管理器-系统设备-硬件-显示 中找到是否有独立显卡（NVIDIA或者AMD），这里是NVIDIA，然后进入 NVIDIA控制面板-帮助-系统-组件 查看可支持的CUDA版本，在官网上去下载该版本以及低版本的都可以，然后根据Pytorch安装教程
根据你的操作系统，第三方库，编程语言，搭载平台可以在官网链接生成不同的安装指令。

...]]></description><category></category></item><item><title><![CDATA[MOOC课程python语言程序设计——6组合数据类型]]></title><link>https://blog.youkuaiyun.com/dkkfff/article/details/116707240</link><guid>https://blog.youkuaiyun.com/dkkfff/article/details/116707240</guid><author>dkkfff</author><pubDate>Wed, 12 May 2021 21:40:45 +0800</pubDate><description><![CDATA[6.1 集合类型和操作
集合的定义：
①集合中的元素是不可更改数据类型（整数、浮点数、复数、字符串、元组）
②集合中每个元素唯一，不存在相同元素（类似求交集）
③集合元素之间无序
④建立集合类型用{…}或set()，建立空集合必须使用set()
⑤集合用{}表示，中间用逗号隔开

集合操作符：
①集合间操作：可以赋值给新的变量

②关系操作符：S &lt;=/&lt;/&gt;=/&gt; T
③增强操作符：修改原有的集合

集合处理方法：十个


虽然while是死循环，但是最终的空集合能被except捕]]></description><category></category></item><item><title><![CDATA[MOOC课程python语言程序设计——5 函数和代码复用]]></title><link>https://blog.youkuaiyun.com/dkkfff/article/details/116656935</link><guid>https://blog.youkuaiyun.com/dkkfff/article/details/116656935</guid><author>dkkfff</author><pubDate>Tue, 11 May 2021 21:45:30 +0800</pubDate><description><![CDATA[5.1函数的定义与使用
1.函数是一段代码的表示

特定功能的、可重用的语句组
两个作用：降低编码难度+代码复用

def &lt;函数名&gt;（&lt;参数0个或多个&gt;）：
      &lt;函数体&gt;
      return &lt;返回值&gt;


函数是一种IPO的实现（输入-处理-输出）
调用是运行函数代码的方式


2.函数的参数
①可以有参数，也可以没有，但别必须保留括号
②可选参数：某些参数指定默认值，且可选参数要放在非可选参数后面，如下：（就是某些参数是函数内部设定了的，]]></description><category></category></item><item><title><![CDATA[第四周尾巴]]></title><link>https://blog.youkuaiyun.com/dkkfff/article/details/116272177</link><guid>https://blog.youkuaiyun.com/dkkfff/article/details/116272177</guid><author>dkkfff</author><pubDate>Thu, 29 Apr 2021 17:26:17 +0800</pubDate><description><![CDATA[计算圆周率：
①由公式计算

②蒙特卡罗方法：是一个撒点方法，类似于概率

圆周率本身就是圆形的面积除以外切正方形的面积（如下图所示）。取四分之一的区域（研究的就是pi/4）做研究进行撒点圆内的点数量除以总散点数


from random import random
from time import perf_counter
DARTS = 1000*1000 #总撒点数量
hits = 0.0 # 目前在圆内部点的数量
strat = perf_counter()
# 模拟每次撒的点，判断是否在圆内
f]]></description><category></category></item><item><title><![CDATA[MOOC课程python语言程序设计——4 程序的控制结构]]></title><link>https://blog.youkuaiyun.com/dkkfff/article/details/116210704</link><guid>https://blog.youkuaiyun.com/dkkfff/article/details/116210704</guid><author>dkkfff</author><pubDate>Tue, 27 Apr 2021 22:48:41 +0800</pubDate><description><![CDATA[4.1 程序的分支结构
单分支结构：根据判断条件来选择不同向前路径的运行方式



二分支结构：


紧凑形式：&lt;表达式1&gt; if &lt;条件&gt; else &lt;表达式2&gt;
注意紧凑形式中不能赋值，只能是表达式

多分支结构：



条件判断：

操作符
保留字：and、or、not


异常处理：



异常处理相关机制：

try和except：




1.要执行的程序放在try中的语句块1中，出现异常执行except后的语句块2，不出现异常执行语句块1，然后结束。
2.异]]></description><category></category></item><item><title><![CDATA[Pyhton小技巧]]></title><link>https://blog.youkuaiyun.com/dkkfff/article/details/116204891</link><guid>https://blog.youkuaiyun.com/dkkfff/article/details/116204891</guid><author>dkkfff</author><pubDate>Tue, 27 Apr 2021 16:51:55 +0800</pubDate><description><![CDATA[进入方法内部：按住Ctrl，再鼠标左击对应的函数
将多行代码改成注释：Ctrl+/


]]></description><category></category></item><item><title><![CDATA[MOOC课程python语言程序设计——3 基本数据类型]]></title><link>https://blog.youkuaiyun.com/dkkfff/article/details/116074535</link><guid>https://blog.youkuaiyun.com/dkkfff/article/details/116074535</guid><author>dkkfff</author><pubDate>Sat, 24 Apr 2021 18:49:33 +0800</pubDate><description><![CDATA[3.1数字类型及操作
整数类型：与数学中的整数概念一致


十进制
二进制：以0B或0b开头
八进制：以0o或0O开头
十六进制：以0x或0X开头


浮点数类型：与数学中实数的概念一致

与整数不同的是：浮点数取值范围和小数精度都存在限制，但常规计算可以忽略不计
存在不确定尾数，即0.1+0.2输出0.30000000000000000004 （原因是因为计算机的存储是二进制，而二进制和十进制之间存在不严格的对等关系）



浮点数间运算和比较，用Round。Round(x,d):对x四舍五入，d是小数截]]></description><category></category></item><item><title><![CDATA[MOOC课程python语言程序设计——2 python图形基本绘制]]></title><link>https://blog.youkuaiyun.com/dkkfff/article/details/116043918</link><guid>https://blog.youkuaiyun.com/dkkfff/article/details/116043918</guid><author>dkkfff</author><pubDate>Fri, 23 Apr 2021 15:08:55 +0800</pubDate><description><![CDATA[2.1深入理解Python
计算机演进分为四个阶段：

1.1946-1981 计算机系统结构时代中，重点解决计算能力问题
2.1981-2008 网络和视窗时代，重点解决交互问题（计算机与计算机，人与计算机）

网络是互联网；视窗是Windows视窗操作系统，2008年，安卓操作系统诞生，标志着PC向移动端转换

3.2008-2016 复杂信息系统时代，重点解决数据问题（数据接口、数据存储问题等）
4.2017—至今，人工智能时代，重点关注的是人类问题。
但其实目前我们处于一个新计算时代

不同编程语言]]></description><category></category></item></channel></rss>