- 关于离子滤波小记
文弱_书生
乱七八糟人工智能计算机视觉算法
粒子滤波(ParticleFilter,PF)粒子滤波是一种基于蒙特卡洛方法的贝叶斯滤波算法,主要用于解决非线性、非高斯的状态估计问题。它广泛应用于机器人定位、目标跟踪、金融建模等领域。1.粒子滤波的基本概念粒子滤波的核心思想是用一组加权的**随机样本(粒子)**来近似后验概率分布,而非采用卡尔曼滤波那样的参数化分布假设(如高斯分布)。设系统的状态模型如下:xk=f(xk−1,uk,wk)x_k=
- 基于粒子滤波与卡尔曼滤波的锂离子电池放电时间预测与使用特征研究
算法如诗
电池建模(RULBC)粒子滤波锂离子电池放电时间预测
基于粒子滤波与卡尔曼滤波的锂离子电池放电时间预测与使用特征研究一、研究背景与意义锂离子电池作为现代储能系统的核心组件,其放电时间(End-of-DischargeTime,EOD)的准确预测对电池管理系统(BMS)的可靠性和安全性至关重要。传统方法(如安时积分法)易受噪声、温度漂移等因素干扰,而基于状态估计的滤波算法(粒子滤波/PF、卡尔曼滤波/KF)通过动态更新模型参数,能显著提升预测精度。二、
- 电机控制常见面试问题(十)
小雀丝
嵌入式硬件单片机电机控制电机
文章目录一、Kalman滤波器的原理以及EKF(扩展卡尔曼滤波)的概念1.理解Kalman滤波器2.理解EKF3.总结二、滑动平均滤波器的设计1.定义与原理2.关键参数设计3.与其它滤波器对比三.PID与MPC的区别四.李雅普诺夫稳定性的概念五.谈一下对电感与电容的理解一、Kalman滤波器的原理以及EKF(扩展卡尔曼滤波)的概念1.理解Kalman滤波器什么是Kalman滤波器?——用“天气预报
- 无人机动态追踪技术难点与距离分析!
云卓SKYDROID
无人机人工智能云卓科技智能跟踪吊舱
一、技术难点概述目标识别与跟踪算法的鲁棒性复杂场景适应性**:在动态背景(如人群、森林)或光照变化(逆光、夜间)下,算法需精准区分目标与干扰物。传统计算机视觉方法(如光流法、卡尔曼滤波)易受干扰,需结合深度学习(如YOLO、SiamRPN++)提升抗干扰能力。多目标跟踪与遮挡处理**:目标被遮挡或短暂消失时,需通过轨迹预测或特征匹配恢复跟踪,对算法的记忆能力和实时性要求极高。实时性要求**:算法需
- 卡尔曼滤波算法c语言stm32,卡尔曼滤波算法及C语言实现_源代码
weixin_39643255
卡尔曼滤波算法c语言stm32
a往南向北2019-01-1620:39:2011340收藏111分类专栏:C语言嵌入式文章标签:卡尔曼滤波C代码卡尔曼滤波理论很容易就可以在MATLAB软件环境下实现,但是,实际的硬件板子上还是需要C语言,当然可以自动代码生成,还有一种就是直接手动编写C语言。1.前言在google上搜索卡尔曼滤波,很容易找到以下这个帖子:http://blog.csdn.net/lanbing510/artic
- MPU6050 卡尔曼滤波算法 四元数欧拉姿态解算 STM32 CubeMX HAL库 MDKkeil5 零基础移植
辛尘大海
算法stm32嵌入式硬件
文章目录一、在cubemx开启IIC并设置好对应的IIC引脚二、generatecode生成代码三、复制以下的全部代码新建分别保存放到IncSrc文件夹中1.MPU6050.h2.MPU6050.C四、如何使用总结一、在cubemx开启IIC并设置好对应的IIC引脚二、generatecode生成代码(记得生成单个c.h.文件)!!!!!!三、复制以下的全部代码新建分别保存放到IncSrc文件夹中
- STM32应用(六)一阶卡尔曼滤波代码和简单应用
2401_87557129
stm32嵌入式硬件单片机
STM32应用(五)基于输入捕获的超声波HC-SR04模块使用1.一阶卡尔曼滤波代码实现1.1Kalman滤波代码1.1.1Kalman.c文件#include"Kalman.h"voidKalman\_Init(){kfp.Last_P=1;kfp.Now_P=0;kfp.out=0;kfp.Kg=0;kfp.Q=0;kfp.R=0.01;}/\*\*\*卡尔曼滤波器\*@paramKalman
- 卡尔曼滤波算法从理论到实践:在STM32中的嵌入式实现
DOMINICHZL
STM32算法stm32嵌入式硬件
摘要:卡尔曼滤波(KalmanFilter)是传感器数据融合领域的经典算法,在姿态解算、导航定位等嵌入式场景中广泛应用。本文将从公式推导、代码实现、参数调试三个维度深入解析卡尔曼滤波,并给出基于STM32硬件的完整工程案例。一、卡尔曼滤波核心思想1.1什么是卡尔曼滤波?卡尔曼滤波是一种最优递归估计算法,通过融合预测值(系统模型)与观测值(传感器数据),在噪声干扰环境下实现对系统状态的动态估计。其核
- 基于 MATLAB仿真卡尔曼滤波原理及应用
资深码侬
matlabmatlab开发语言
基于MATLAB仿真卡尔曼滤波原理及应用简介:《卡尔曼滤波原理及应用:MATLAB仿真》主要介绍数字信号处理中的卡尔曼(Kalman)滤波算法及在相关领域应用。《卡尔曼滤波原理及应用:MATLAB仿真》共7章。第1章为绪论。第2章介绍MATLAB算法仿真的编程基础。第3章介绍线性Kalman滤波。第4章讨论扩展Kalman滤波,并介绍其在目标跟踪和制导领域的应用和算法仿真。第5章介绍UKF滤波算法
- 嵌入式学习笔记-卡尔曼滤波,PID,MicroPython
tt555555555555
面经嵌入式学习笔记学习笔记嵌入式
文章目录卡尔曼滤波卡尔曼滤波的核心思想卡尔曼滤波的数学模型1.状态转移模型(预测系统状态)2.观测模型(预测测量值)卡尔曼滤波的五个关键步骤1.预测状态2.预测误差协方差3.计算卡尔曼增益4.更新状态5.更新误差协方差卡尔曼滤波算法步骤总结代码实现(Python示例)PID调节总结MicroPython示例代码:控制LED灯并连接WiFi1.硬件准备2.连接方式3.示例代码代码说明开发环境搭建今天
- OpenCV的卡尔曼滤波器:实现和应用
雪域Code
opencv人工智能计算机视觉C/C++
OpenCV的卡尔曼滤波器:实现和应用卡尔曼滤波器(Kalmanfilter)是一种最优估计的算法,在众多领域有着广泛的应用,如控制系统、通信系统、机器人等。OpenCV作为一个计算机视觉库,也提供了对卡尔曼滤波器的支持。本文将介绍OpenCV中卡尔曼滤波器的基本原理、实现方法以及在图像处理中的应用。一、卡尔曼滤波器简介卡尔曼滤波器是一种用于状态估计和信号滤波的算法,主要针对线性、高斯分布的系统。
- 【基于PSINS】CKF滤波,观测量为航向角、位置、速度(共7维),附完整代码
MATLAB卡尔曼
基于PSINS工具箱的程序设计matlab开发语言
本代码基于PSINS工具箱实现了一个15维状态的容积卡尔曼滤波(CKF)算法,用于SINS/GPS组合导航系统。该算法在原有仅速度观测的CKF153模型基础上改进,新增位置、航向角作为观测输入,提升了导航精度。文章目录运行结果完整代码核心功能代码改进点实现流程关键函数说明运行结果总结以下是代码的核心功能与实现流程:运行结果三维轨迹:三轴位置误差曲线:三轴速度误差曲线:
- PSINS中19维组合导航模块sinsgps详解(滤波部分)
十八与她
PSINS工具箱基本原理与应用人工智能大数据算法惯导组合导航
PSINS中19维组合导航模块sinsgps详解滤波部分滤波部分fork=1:nn:len-nn+1k1=k+nn-1;wvm=imu(k:k1,1:6);t=imu(k1,end);ins=insupdate(ins,wvm);上述代码先进行的是惯导算法更新2.kf.Phikk_1=kffk(ins);为创建卡尔曼滤波的状态转移矩阵3.kf=kfupdate(kf);卡尔曼滤波的时间更新4.[k
- 卡尔曼滤波记录
qq_30362711
优化与求解机器学习
参考这个:https://www.kalmanfilter.net/alphabeta.html。这个吊打其他一切教程
- 【IMU Kalman滤波器】9轴IMU传感器(加速度计、陀螺仪、磁力计)的卡尔曼滤波器算法研究(Matlab代码实现)
然哥爱编程
算法matlab开发语言
欢迎来到本博客❤️❤️博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。⛳️座右铭:行百里者,半于九十。本文目录如下:目录⛳️赠与读者1概述一、引言二、9轴IMU传感器原理及误差分析三、卡尔曼滤波器算法四、实验与结果分析五、结论与展望2运行结果3参考文献4Matlab代码、数据⛳️赠与读者做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努
- C# OpenCV机器视觉:卡尔曼滤波
pchmi
C#OpenCV机器视觉c#opencv人工智能机器视觉卡尔曼滤波
在一个阳光有些慵懒的午后,阿强像往常一样窝在他那被各种电子元件和乱糟糟电线堆满的实验室里,百无聊赖地翻看着一本本厚重的技术书籍。突然,一阵急促的敲门声打破了平静,阿强趿拉着拖鞋,嘟囔着跑去开门,只见好友二胖火急火燎地冲了进来,手里还挥舞着一个小型无人机模型。“阿强啊,我这新买的无人机出大问题了!”二胖气喘吁吁地说道,额头上豆大的汗珠滚落,“我本来想在公园里拍点酷炫的飞行视频,结果它在空中晃得厉害,
- 基于卡尔曼滤波的系统参数辨识matlab仿真
软件算法开发
MATLAB程序开发#参数辨识matlab网络
目录1.程序功能描述2.测试软件版本以及运行结果展示3.核心程序4.本算法原理4.1、卡尔曼滤波的基本原理4.2、基于卡尔曼滤波的系统参数辨识5.完整程序1.程序功能描述通过kalman滤波的方法,对系统的参数进行辨识,整个程序仿真输出参数辨识的收敛过程,参数辨识误差,参数辨识之后系统的输出和真实的系统输出误差,最后设置不同的信噪比,对比不同干扰下的系统参数辨识误差。2.测试软件版本以及运行结果展
- 目标跟踪概念、多目标跟踪算法SORT和deep SORT原理
yhwang-hub
深度学习
目录目标跟踪、单目标跟踪、多目标跟踪的概念欧氏距离、马氏距离、余弦距离欧氏距离马氏距离余弦距离SORT算法原理SORT算法中的匈牙利匹配算法指派问题中的匈牙利算法预测模型(卡尔曼滤波器)数据关联(匈牙利匹配)目标丢失问题的处理SORT算法过程deepSORT算法原理状态估计轨迹处理分配问题的评价指标级联匹配深度表观描述子算法总结目标跟踪、单目标跟踪、多目标跟踪的概念目标跟踪分为静态背景下的目标跟踪
- 传感器融合(UWB+IMU+超声波),使用卡尔曼滤波器和3种不同的多点定位算法(最小二乘、递归最小二乘和梯度下降)研究(Matlab代码实现)
科研_研学社
算法matlab开发语言
欢迎来到本博客❤️❤️博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。⛳️座右铭:行百里者,半于九十。本文目录如下:目录⛳️赠与读者1概述一、引言二、传感器介绍(一)UWB(超宽带)(二)IMU(惯性测量单元)(三)超声波传感器三、定位算法(一)卡尔曼滤波器(二)多点定位算法1.最小二乘法2.递归最小二乘法3.梯度下降法四、系统架构五、实验设计六、结果与讨论七、结论2运行结果3参考文献
- 【事件触发扩散卡尔曼滤波器】基于UWB实测数据的基于事件触发的扩散卡尔曼滤波器的定位【DEKF、EKF】(Matlab代码实现)
wlz249
matlab开发语言
欢迎来到本博客❤️❤️博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。⛳️座右铭:行百里者,半于九十。本文目录如下:目录⛳️赠与读者1概述2运行结果3参考文献4Matlab代码、数据、文章下载⛳️赠与读者做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览,免得骤然跌
- 维度可变的UKF(无迹卡尔曼滤波),附有完整源代码
MATLAB卡尔曼
MATLAB创新性滤波方法matlab开发语言
本文分享的MATLAB代码实现了一个N维状态量的无迹卡尔曼滤波(UKF)算法,用于对动态系统的状态估计。代码的一个显著特点是滤波维度可以自由更改,便于适应不同的应用需求。文章目录代码简短介绍运行结果源代码代码简短介绍主要内容和流程如下:初始化:清空工作区和命令窗口,固定随机数种子以确保结果可重现。定义时间序列和状态维度(dim),可以灵活设置至任意值,以适应特定应用。设置过程和观测噪声的协方差矩阵
- 用python编写的UKF(无迹卡尔曼滤波)代码,状态量和观测量都是三维、非线性的,注释使用中文
MATLAB卡尔曼
卡尔曼与pythonpython开发语言
用python编写的UKF(无迹卡尔曼滤波)代码,状态量和观测量都是三维、非线性的,注释使用中文文章目录代码讲解UKF类的构造预测步骤更新步骤辅助函数示例用法总结importnumpyasnpclassUKF:def__init__(self,dim_x,dim_z,alpha=1e-3,beta=2,kappa=0):self.dim_x=dim_x#状态维度self.dim_z=dim_z#观
- 【概率图与随机过程】01 一维高斯分布:极大似然与无偏性
石 溪
机器学习中的数学(全集)概率论图论自然语言处理机器学习人工智能
在这个专栏中,我们开篇首先介绍高斯分布,他的重要性体现在两点:第一:依据中心极限定理,当样本量足够大的时候,任意分布的均值都趋近于一个高斯分布,这是在整个工程领域体现出该分布的一种普适性;第二:高斯分布是后续许多模型的根本基础,例如线性高斯模型(卡尔曼滤波)、高斯过程等等。因此我们首先在这一讲当中,结合一元高斯分布,来讨论一下极大似然估计,估计的有偏性、无偏性等基本建模问题。1.极大似然估计问题背
- EKF+PF的MATLAB例程
Evand J
matlab开发语言
EKF+PF扩展卡尔曼滤波与粒子滤波的MATLAB程序,有中文注释程序源码%EKF+PF效果对比%author:Evand%作者联系方式:
[email protected](除前期达成一致外,咨询需付费)%date:2024-1-10%Ver2clear;clc;closeall;rng(0);%%参数设置N=100;%粒子总数
- 基于二阶卡尔曼滤波的陀螺仪及加速度计信号融合的姿态角度测量
星e雨
嵌入式
★基于陀螺仪及加速度计信号融合的姿态角度测量1、系统组成本文所采用的姿态角度测控系统主要由加速度计、陀螺仪、微控制器、滤波电路、电机调速器、无刷电机等部分组成.姿态检测系统的硬件平台如图1,由微处理器对陀螺仪、滤波电路和加速度计构成的传感器组进行高速A/D采样后,通过卡尔曼滤波器对传感器数据进行补偿和信息融合,得到准确的姿态角度信号,此角度信号再通过PID控制器运算,输出给电子调速器转换成PWM信
- WebRTC 中带宽估计与拥塞控制算法
逆风了我
WebRTCwebrtc
WebRTC中的带宽估计与拥塞控制算法有很多,以下是其中几种:-GCC(GoogleCongestionControl):基于丢包的带宽估计,其基本思想是根据丢包的多少来判断网络的拥塞程度。丢包越多则认为网络越拥塞,发送速率就需要降低;如果没有丢包,则说明网络状况较好,可以提高发送码率以探测是否有更多的带宽可用。-Goog-REMB:基于接收端的延迟算法,利用延迟值,通过卡尔曼滤波器估计出下一时刻
- 扩展卡尔曼滤波与粒子滤波例程
Evand J
算法人工智能
三维滤波,非线性系统状态与非线性观测,使用EKF和PF进行滤波,输出滤波值曲线与误差对比,MATLAB程序如下:%EKF+PF效果对比%author:Evand%作者联系方式:
[email protected](除前期达成一致外,咨询需付费)%date:2024-1-10%Ver2clear;clc;closeall;%%参数设置N=100;%粒子总数t=1:1:
- 卡尔曼滤波详解(1)
见牛羊
人工智能人工智能数学建模
目录1.核心思想2.五个公式的解读2.1预测部分2.2更新部分3.公式的实际应用4.调参方法1.核心思想首先,卡尔曼滤波器可以用来估计系统的状态,这个状态是时间序列上的,利用上一时刻的状态可以预测当前时刻的状态,利用当前时刻的观测可以更新和修正当前时刻的预测。这么说可能有点绕,看下图。绿色的x表示系统的状态,y表示对系统状态的观测,蓝色的x表示修正后的状态。卡尔曼滤波的核心思想,就是用利用蓝色进行
- EKF与UKF对比,三维状态量滤波
Evand J
人工智能matlab
扩展卡尔曼滤波EKF与无迹卡尔曼滤波UKF的MATLAB程序,程序源码:%EKF+UKF效果对比%author:Evand%作者联系方式:
[email protected](除前期达成一致外,付费咨询)%date:2023-11-07%Ver1clear;clc;closeall;%%滤波模型初始化t=1:1:1000;Q=1*
- 【嵌入式开发】80
少年郎123456
单片机嵌入式硬件stm32fpga开发
【嵌入式开发】STM32在四轴无人机开发中实现飞行控制主要通过以下步骤:读取传感器数据:STM32通过I2C、SPI等接口与各种传感器进行通信,如陀螺仪、加速度计、磁力计等。它定时读取这些传感器的原始数据,这些数据反映了无人机的姿态、位置和速度等信息。数据处理与姿态解算:读取到的原始数据通常包含噪声和误差,需要进行滤波和处理。STM32运行相应的算法对这些数据进行处理,如卡尔曼滤波、互补滤波等,以
- 深入浅出Java Annotation(元注解和自定义注解)
Josh_Persistence
Java Annotation元注解自定义注解
一、基本概述
Annontation是Java5开始引入的新特征。中文名称一般叫注解。它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。
更通俗的意思是为程序的元素(类、方法、成员变量)加上更直观更明了的说明,这些说明信息是与程序的业务逻辑无关,并且是供指定的工具或
- mysql优化特定类型的查询
annan211
java工作mysql
本节所介绍的查询优化的技巧都是和特定版本相关的,所以对于未来mysql的版本未必适用。
1 优化count查询
对于count这个函数的网上的大部分资料都是错误的或者是理解的都是一知半解的。在做优化之前我们先来看看
真正的count()函数的作用到底是什么。
count()是一个特殊的函数,有两种非常不同的作用,他可以统计某个列值的数量,也可以统计行数。
在统
- MAC下安装多版本JDK和切换几种方式
棋子chessman
jdk
环境:
MAC AIR,OS X 10.10,64位
历史:
过去 Mac 上的 Java 都是由 Apple 自己提供,只支持到 Java 6,并且OS X 10.7 开始系统并不自带(而是可选安装)(原自带的是1.6)。
后来 Apple 加入 OpenJDK 继续支持 Java 6,而 Java 7 将由 Oracle 负责提供。
在终端中输入jav
- javaScript (1)
Array_06
JavaScriptjava浏览器
JavaScript
1、运算符
运算符就是完成操作的一系列符号,它有七类: 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=)、算术运算符(+,-,*,/,++,--,%)、比较运算符(>,<,<=,>=,==,===,!=,!==)、逻辑运算符(||,&&,!)、条件运算(?:)、位
- 国内顶级代码分享网站
袁潇含
javajdkoracle.netPHP
现在国内很多开源网站感觉都是为了利益而做的
当然利益是肯定的,否则谁也不会免费的去做网站
&
- Elasticsearch、MongoDB和Hadoop比较
随意而生
mongodbhadoop搜索引擎
IT界在过去几年中出现了一个有趣的现象。很多新的技术出现并立即拥抱了“大数据”。稍微老一点的技术也会将大数据添进自己的特性,避免落大部队太远,我们看到了不同技术之间的边际的模糊化。假如你有诸如Elasticsearch或者Solr这样的搜索引擎,它们存储着JSON文档,MongoDB存着JSON文档,或者一堆JSON文档存放在一个Hadoop集群的HDFS中。你可以使用这三种配
- mac os 系统科研软件总结
张亚雄
mac os
1.1 Microsoft Office for Mac 2011
大客户版,自行搜索。
1.2 Latex (MacTex):
系统环境:https://tug.org/mactex/
&nb
- Maven实战(四)生命周期
AdyZhang
maven
1. 三套生命周期 Maven拥有三套相互独立的生命周期,它们分别为clean,default和site。 每个生命周期包含一些阶段,这些阶段是有顺序的,并且后面的阶段依赖于前面的阶段,用户和Maven最直接的交互方式就是调用这些生命周期阶段。 以clean生命周期为例,它包含的阶段有pre-clean, clean 和 post
- Linux下Jenkins迁移
aijuans
Jenkins
1. 将Jenkins程序目录copy过去 源程序在/export/data/tomcatRoot/ofctest-jenkins.jd.com下面 tar -cvzf jenkins.tar.gz ofctest-jenkins.jd.com &
- request.getInputStream()只能获取一次的问题
ayaoxinchao
requestInputstream
问题:在使用HTTP协议实现应用间接口通信时,服务端读取客户端请求过来的数据,会用到request.getInputStream(),第一次读取的时候可以读取到数据,但是接下来的读取操作都读取不到数据
原因: 1. 一个InputStream对象在被读取完成后,将无法被再次读取,始终返回-1; 2. InputStream并没有实现reset方法(可以重
- 数据库SQL优化大总结之 百万级数据库优化方案
BigBird2012
SQL优化
网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。
这篇文章我花费了大量的时间查找资料、修改、排版,希望大家阅读之后,感觉好的话推荐给更多的人,让更多的人看到、纠正以及补充。
1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
2.应尽量避免在 where
- jsonObject的使用
bijian1013
javajson
在项目中难免会用java处理json格式的数据,因此封装了一个JSONUtil工具类。
JSONUtil.java
package com.bijian.json.study;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
- [Zookeeper学习笔记之六]Zookeeper源代码分析之Zookeeper.WatchRegistration
bit1129
zookeeper
Zookeeper类是Zookeeper提供给用户访问Zookeeper service的主要API,它包含了如下几个内部类
首先分析它的内部类,从WatchRegistration开始,为指定的znode path注册一个Watcher,
/**
* Register a watcher for a particular p
- 【Scala十三】Scala核心七:部分应用函数
bit1129
scala
何为部分应用函数?
Partially applied function: A function that’s used in an expression and that misses some of its arguments.For instance, if function f has type Int => Int => Int, then f and f(1) are p
- Tomcat Error listenerStart 终极大法
ronin47
tomcat
Tomcat报的错太含糊了,什么错都没报出来,只提示了Error listenerStart。为了调试,我们要获得更详细的日志。可以在WEB-INF/classes目录下新建一个文件叫logging.properties,内容如下
Java代码
handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHa
- 不用加减符号实现加减法
BrokenDreams
实现
今天有群友发了一个问题,要求不用加减符号(包括负号)来实现加减法。
分析一下,先看最简单的情况,假设1+1,按二进制算的话结果是10,可以看到从右往左的第一位变为0,第二位由于进位变为1。
 
- 读《研磨设计模式》-代码笔记-状态模式-State
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/*
当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类
状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况
把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化
如果在
- CUDA程序block和thread超出硬件允许值时的异常
cherishLC
CUDA
调用CUDA的核函数时指定block 和 thread大小,该大小可以是dim3类型的(三维数组),只用一维时可以是usigned int型的。
以下程序验证了当block或thread大小超出硬件允许值时会产生异常!!!GPU根本不会执行运算!!!
所以验证结果的正确性很重要!!!
在VS中创建CUDA项目会有一个模板,里面有更详细的状态验证。
以下程序在K5000GPU上跑的。
- 诡异的超长时间GC问题定位
chenchao051
jvmcmsGChbaseswap
HBase的GC策略采用PawNew+CMS, 这是大众化的配置,ParNew经常会出现停顿时间特别长的情况,有时候甚至长到令人发指的地步,例如请看如下日志:
2012-10-17T05:54:54.293+0800: 739594.224: [GC 739606.508: [ParNew: 996800K->110720K(996800K), 178.8826900 secs] 3700
- maven环境快速搭建
daizj
安装mavne环境配置
一 下载maven
安装maven之前,要先安装jdk及配置JAVA_HOME环境变量。这个安装和配置java环境不用多说。
maven下载地址:http://maven.apache.org/download.html,目前最新的是这个apache-maven-3.2.5-bin.zip,然后解压在任意位置,最好地址中不要带中文字符,这个做java 的都知道,地址中出现中文会出现很多
- PHP网站安全,避免PHP网站受到攻击的方法
dcj3sjt126com
PHP
对于PHP网站安全主要存在这样几种攻击方式:1、命令注入(Command Injection)2、eval注入(Eval Injection)3、客户端脚本攻击(Script Insertion)4、跨网站脚本攻击(Cross Site Scripting, XSS)5、SQL注入攻击(SQL injection)6、跨网站请求伪造攻击(Cross Site Request Forgerie
- yii中给CGridView设置默认的排序根据时间倒序的方法
dcj3sjt126com
GridView
public function searchWithRelated() {
$criteria = new CDbCriteria;
$criteria->together = true; //without th
- Java集合对象和数组对象的转换
dyy_gusi
java集合
在开发中,我们经常需要将集合对象(List,Set)转换为数组对象,或者将数组对象转换为集合对象。Java提供了相互转换的工具,但是我们使用的时候需要注意,不能乱用滥用。
1、数组对象转换为集合对象
最暴力的方式是new一个集合对象,然后遍历数组,依次将数组中的元素放入到新的集合中,但是这样做显然过
- nginx同一主机部署多个应用
geeksun
nginx
近日有一需求,需要在一台主机上用nginx部署2个php应用,分别是wordpress和wiki,探索了半天,终于部署好了,下面把过程记录下来。
1. 在nginx下创建vhosts目录,用以放置vhost文件。
mkdir vhosts
2. 修改nginx.conf的配置, 在http节点增加下面内容设置,用来包含vhosts里的配置文件
#
- ubuntu添加admin权限的用户账号
hongtoushizi
ubuntuuseradd
ubuntu创建账号的方式通常用到两种:useradd 和adduser . 本人尝试了useradd方法,步骤如下:
1:useradd
使用useradd时,如果后面不加任何参数的话,如:sudo useradd sysadm 创建出来的用户将是默认的三无用户:无home directory ,无密码,无系统shell。
顾应该如下操作:
- 第五章 常用Lua开发库2-JSON库、编码转换、字符串处理
jinnianshilongnian
nginxlua
JSON库
在进行数据传输时JSON格式目前应用广泛,因此从Lua对象与JSON字符串之间相互转换是一个非常常见的功能;目前Lua也有几个JSON库,本人用过cjson、dkjson。其中cjson的语法严格(比如unicode \u0020\u7eaf),要求符合规范否则会解析失败(如\u002),而dkjson相对宽松,当然也可以通过修改cjson的源码来完成
- Spring定时器配置的两种实现方式OpenSymphony Quartz和java Timer详解
yaerfeng1989
timerquartz定时器
原创整理不易,转载请注明出处:Spring定时器配置的两种实现方式OpenSymphony Quartz和java Timer详解
代码下载地址:http://www.zuidaima.com/share/1772648445103104.htm
有两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz。
1.Java Timer定时
首先继承jav
- Linux下df与du两个命令的差别?
pda158
linux
一、df显示文件系统的使用情况,与du比較,就是更全盘化。 最经常使用的就是 df -T,显示文件系统的使用情况并显示文件系统的类型。 举比例如以下: [root@localhost ~]# df -T Filesystem Type &n
- [转]SQLite的工具类 ---- 通过反射把Cursor封装到VO对象
ctfzh
VOandroidsqlite反射Cursor
在写DAO层时,觉得从Cursor里一个一个的取出字段值再装到VO(值对象)里太麻烦了,就写了一个工具类,用到了反射,可以把查询记录的值装到对应的VO里,也可以生成该VO的List。
使用时需要注意:
考虑到Android的性能问题,VO没有使用Setter和Getter,而是直接用public的属性。
表中的字段名需要和VO的属性名一样,要是不一样就得在查询的SQL中
- 该学习笔记用到的Employee表
vipbooks
oraclesql工作
这是我在学习Oracle是用到的Employee表,在该笔记中用到的就是这张表,大家可以用它来学习和练习。
drop table Employee;
-- 员工信息表
create table Employee(
-- 员工编号
EmpNo number(3) primary key,
-- 姓