自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 git 修改提交注释

注:很重要的一点是,你最好保证在你强制push之前没有人提交代码,如果在你push之前有人提交了新的代码到远程仓库,然后你又强制push,那么会被你的强制更新覆盖!(5)git commit --amend 【同上有提示,第一行进行你真正需要的修改, 修改完后,保存退出】(6)git rebase --continue 【退出后,输入最后一步】(3)会出现,非分支,正变基的分支,别害怕,继续往下 git commit --amend。

2025-06-04 17:30:57 233

原创 python调wfdb库读欧洲st-t数据库

主要研究st事件,需要使用欧洲st-t数据库(european st-t database)需要读取数据和st事件的注释(事件起始和结束采样点位置,事件也分通道)。注意,结合上篇,可以看看怎么将字符串中的空字符读出来,以及将字符串中的空字符替换掉。没画图,先只是将st事件标注打印出来。

2025-05-22 17:31:52 210

原创 python调wfdb库读心电数据库的注释文件中NUL问题

切入点如题。开始使用字符串中通配符,没用。查找DeepSeek给出下面结果:在 Python 中,字符串中出现[NUL]表示字符串包含一个(ASCII 值为0的字符,即\x00这个符号通常是某些编辑器或调试工具对不可见字符的可视化表示,而非字符串的实际内容。

2025-05-22 16:15:31 423

原创 VS编译报错C2039,找不到结构体成员

还真是这样的问题,即,结构体定义时,某个成员后加注释,注释的最后最少要敲一个空格键......确实不知道这是什么道理。

2025-05-19 15:32:56 199

原创 Git命令行中vim的操作

在命令模式下,输入冒号 “:” 后,可以执行一些命令。要保存文件并退出vim,可以输入 “wq”(write and quit)命令,然后按回车键。Git命令行用vim打开文件,或者用其他git命令打开了文件,需要编辑和保存文件等,有些命令表情奇怪,往往容易忘记这些命令。当然,vim编辑器还有其他更多的功能和命令可以使用,你可以通过查阅vim的文档来了解更多细节。如果你不希望保存文件并想直接退出vim,可以在命令模式下输入 “q” 命令,然后按回车键。如果只想保存文件而不退出,可以使用 “w” 命令。

2025-04-25 17:40:30 622

原创 Git创建分支以及拉取分支的代码

1、先要拉取远程容器,注意拉取的是到要建立分支的父分支,如果这个分支不是主分支,那么先要切换到这个分支。2、进入到拉取后的目录下(一般是拉取下来的文件夹下一级即可),进入bash,创建分支:git branch 新分支名3、切换到新分支 :git checkout 新分支名4、在目录下进行各种文件操作,然后add,commit,不需要加分支名。5、push,需要加分支名了:git push origin 新分支名。

2025-04-24 17:45:02 872

原创 Git删除指定历史版本

那么,是Git没有这种操作么?不允许?还是没找到办法,未完,继续探索中。

2025-04-24 17:27:08 1113

原创 二级指针作为函数入参,在函数内部申请和释放内存的写法

需要非常注意*,其实,只需要一直记得指向二级指针的指针,其取值才是二级指针首地址,二级指针取值才是一级指针地址,二级指针移位,得到一级指针的总体移位。// 释放内层每个 double 数组。// 释放外层的 double* 数组。// 修正变量名错误。// ---- 假设此处有其他使用内存的操作 ----

2025-03-21 11:12:01 194

原创 pycharm环境下安装指定版本的第三方包

此外,还有一种,直接在windows命令行用pip命令安装,和在pycharm命令行安装一样。

2025-03-14 15:23:50 191

原创 C/C++子函数申请对应二维数组的动态内存传给主函数使用

p1是指向二维指针的指针,即三维指针,其值是二维指针,即指向数组的指针数组,指针数组的每个元素(二维指针)指向一个一维数组的首地址,即每个元素值都是一个指针,(*p)表示取值,*p[0]和(*p)[0]表示的是一个地址,但是不是一个意思,用(*p)[0] (*p)[1] ...才能表示二维指针的各个元素,即数组名加和数组元素位置加的区别。这是初步的,主要讲返回原理,但是用的是对应一维数组的内存。实践中碰到需要申请对应二维数组的内存,且,有多个内存需要返回。这里,test1函数类似统一申请动态内存的函数。

2025-02-19 14:59:25 351

原创 C和C++中struct的区别——汇集资料

基本已经说的很清楚了。另外可以看看C++中struct和类的区别,其实就一句话,类属性默认是私有的,struct是公有的,且只能公有。

2025-02-08 15:44:04 149

原创 MIT心律不齐数据库信号和标注读取

MIT心律不齐数据库数据文件和标注文件的读取。

2025-01-07 10:14:39 235

原创 matlab的一些时间函数【转】

注明出处了,原文是公开的,应该不算侵权。看到就记下来,感觉挺好玩的。

2024-12-19 17:56:45 413

原创 matlab画图,选择性显示legend标签

一幅图画了几条曲线,其中有一条是分段画的,这些段是一种颜色,其他线是其他颜色,最终显示结果,明显这条线只需要一个legend,即需要将一些线的标签不显示,即选择性显示标签。曾尝试用空字符表示这条线的其他段,但是最终legend时,空字符也是一个标签,还是标签过多。查了一下,还是很多方法解决问题的——

2024-12-19 17:52:25 791

原创 C语言,结构体及结构体数组作为函数入参

搜到的比较好的文章,先备份,后面再扩展。

2024-12-16 13:35:58 205

原创 结构体加&和不加&

结构体类似于一个数组,比如int a[3],则,如果传入int* a,则只能传入数组的首地址的值,即传入一个int的字节,要传入整个数组,则要写成:(int*) a[3],才表示一次传入了整个数组的字节数,调用时,写成&a[3]。对于上述结构体,若只传入zhh_t,则只传入了结构体首个元素(?要传入整个结构体,形参写成*zhh_t,传入时写成&zhh_t,表示传入这整个结构体的字节数。如果不加,则只是结构体类型的指针,如结构体是zhh_t,那么zhh_t就是一个指向这个类型的指针,类似与int*。

2024-12-10 13:41:26 332

原创 C语言,有关const

以前对于这个关键字,基本没用过。只是印象比较深的是看一些比较经典的库代码,会有很多这个字。比如函数传入指针,之前真没怎么细想,以为很复杂或者麻烦,其实,完全是由于懒惰和畏惧了。

2024-12-09 18:20:54 365

原创 matlab的resample函数

主要是经常忘记了重采样时哪个是原采样率,哪个是重采样后的采样率(目标采样率)。这里记录下,目标采样率在前面!

2024-10-14 14:32:18 408

原创 C语言信号处理,离线版(全域、后处理)中值滤波和低通滤波

对于一些数据,需要在pc或者云端进行滤波处理,比如这里的中值(去基线)和低通(去毛刺)。因为平台强大,当数据量大时,如果滤波做的不是太复杂,或者说做的比较简单,那么处理起来还是比较快的,那么就能实用。这里有个例子,因为是后处理,则信号处理前是多长(多少点),处理后就是多少点。对于中值滤波,需要将边沿点进行扩展(补点),或者在边沿进行窗口缩小处理。对于低通滤波,则确定需要对边沿进行补点,并合理处理延时。

2024-09-19 17:14:59 731

原创 GitLab权限及设置

开发中遇到要将自己这块的代码上传到Git,由其他组的同事拉取后继续开发。上传代码后需要将对应同事设置权限,开始设置成了Developer,但其实是错了,应该是Reporter。之前很少关注这些,项目的权限,一般由专门的管理人员设置。但自己创建的项目自己可以设置权限。

2024-09-12 18:04:27 1979

原创 实时(按帧)处理的低通滤波C语言实现

对前2秒数据,计算第0.5秒到1.5秒数据,即第128点到384点,滤波数据起始点设置在第128(数据起点)+64(滤波器半长)+ 1=193点,易知此点前有192点,远大于滤波器长的128点;但是,滤波器越长,计算量越大。matlab看滤波路效果,128阶的够用了。低通滤波采用一般的FIR滤波器,因为本次任务,允许的延迟较多,或者说前面损失的信号可以较多,因此,涉及一个很高阶的FIR滤波器,前面的信号点可以去掉,以及,考虑延时,当前时刻向前推一个时刻(当前帧处理的最后一点的时刻)之后的点,也先不处理。

2024-09-11 18:07:21 849 1

原创 Git撤销push

需要注意的是,无论是用reflog还是log,只要用reset,都是针对commit的,都需要再push一下!如果之后有别人提交的版本,或者有不需要删除的版本,即,想只撤销某个版本的push,而不是将其后的版本都撤销,那么需要采用revert来做,当然,目标更恰当的说,是变成了删除某指定版本了!注意,其中git reflog是看push的版本号,而不是用git log!需要解决一个问题是:加hard参数,有时会报错,即无权限。另外,下面这个,是不需要用版本号的,但是基本是撤销上个版本的psuh。

2024-09-10 18:23:39 2727

原创 快速排序代码问题以及一种改进的应用

第二,由于逐点滤波时,上一个信号点的窗口数据排序后,在下一个信号点甚至后面很多个信号点的窗口数据排序时,有一定的重复利用价值,特别是对于下一个点的窗口,只是删除了上次窗口中原始索引最小的值,而只增加了下一个点,那么——简单、统一处理可以是,将新增的信号点放在上一个点的窗口原始索引最小的值的位置,再重新排序——即,利用上一个点的窗口内所有数据点都排序好的优点!对于新增的信号点,再对这个新窗口进行排序,理论上计算复杂度就少很多了。同时,每一帧都需要将索引值减1,并且再记录下窗口内原始索引值最小的值的位置。

2024-09-10 15:42:27 850

原创 Git 撤销commit

对比reset,可以说是revert有三个优点吧,特别是第二点,非常神奇,revert之后的版本,在要合并包含被revert版本的版本(即是被revert版本之后到revert版本之前的这些版本)时,因为这些版本包含这个revert操作,会自动将被revert的版本剔除!这就很低级了,就是直接新建一个版本,再提交。版本号继续增加,之前需要删除的版本也还是在,同样,这个版本及之后的版本,如果再和需要删除的版本之后到这个版本之前的版本合并,则还是会带有要删除的版本,也就是没有revert中第二个优点。

2024-09-06 18:35:24 2081

原创 Git撤销add

git add 取消

2024-09-06 17:29:02 943

原创 memcpy()的参数 int 与 unsigned int

看到这个帖子,当字节数是计算式时,确实可能出问题,当为负数时,可能会拷贝很大的字节数(最大2^31),或者,如果内核限制了最大拷贝字节数,则会报错。本来拷贝字节数的参数类型是unsigned int,其实一般写成int型也可以,应该是函数默认强转吧?所以这种最好加上强制转换,即转换成unsigned int。

2024-08-19 17:39:49 297

原创 VS中小数的类型

小数数值,默认是double型,而不是float型。若需要改为float型,除了强制转换,还可以在小数后打一个f,如:float gain = 2.0f;

2024-08-19 17:28:55 231

原创 【转】有未经处理的异常: 0xC00000FD: Stack overflow 问题解决

函数内部变量太大导致超出堆栈尺寸。

2024-08-19 17:24:09 554

原创 未解决:不同类型的数据用memcpy然后打印(printf)出问题

怀疑这个打印值有问题,因为正常0x85值是133,133用有符号的一个字节是表示不了的,即超出表示范围,或者说,int的四个字节,不应该用倒数第二个字节表示0x85,而是要向左再多一位?按说,vaule是32位的,即有四个字节,但是这里转化后只有两个字节,认为是最低的两个字节,拷贝时,也是拷贝低两个字节,且,默认数据是按照小端对齐存储,即两个字节在内存中是按照47 85来存的,所以拷贝时,先拷贝47这个字节,再拷贝85这个字节。且,这里打印也是对的。可见,两个字节是拷贝成功了,顺序也是对的。

2024-08-19 16:29:05 1012

原创 BeyondCompare文件夹比较去掉时间戳选项

记得写过,再写一遍吧。

2024-07-16 11:50:48 820

原创 搜狗输入法产品使用说明

看这里,这里记录下。基本都用这个,里面还是有很多小技巧不知道,可以参考下。

2024-07-04 18:23:29 370

原创 git上传本地单独修改的文件_git 只推送变化的文件

只推送本地修改的文件,这篇文章方法可行。

2024-07-04 17:16:52 386

原创 GIT将文件推送到远程仓库,即添加文件

请注意,以上步骤是在命令行中进行的,如果使用图形界面的Git客户端,操作步骤可能会有所不同。推送文件前,确保文件在本地仓库中已经保存,并且只推送必要的文件,避免推送不必要的文件和敏感信息。此命令将把本地的master分支推送到远程仓库的master分支。4. 创建远程仓库:在Git服务商(如GitHub、GitLab等)上创建一个新的仓库。8. 等待推送完成:等待Git将文件推送到远程仓库,完成后命令行会显示推送成功的消息。7. 输入用户名和密码:如果远程仓库需要身份验证,在命令行中输入你的用户名和密码。

2024-07-03 18:02:27 433

原创 MATLAB画图时添加标注显示有效数字的位数,可以编辑此函数

但是这个函数修改后不能保存,只能另存一个函数。保存好后,在图像上右击鼠标,选择"选择文本更新函数...",选中另存的函数文件即可。这个就是改变有效数字的。当然还可以修改其他属性。

2024-06-12 16:38:12 1165

原创 【转】VS报错找不到函数

即,C工程中,不小心建了一个C++文件,结果一直没发现,编译就是死活找不到定义的函数,各种检查定义、调用等,都没问题,但是编译就是找不到。修改成C文件后,就找到了。找了好久啊,网上没有说这个的,估计这种错误就我会犯吧。猜想,原因是,C文件和C++文件,编译器分别按照C和C++编译规则来编,编译后函数名不同,所以就找不到了。除了文中列的,还有自己评论的,真的是不小心就自己坑自己。

2024-05-30 11:25:12 429

原创 【转】VS(Visual Studio)更改文件编码

亲测VS里面设置是可以的。但是,一个工作区设置了,再新建工作区,这个选项并不保存,需要的话还是要重新设置。

2024-05-09 09:09:38 781

原创 word文档拆分

最需要注意的是,拆分后原文档不存在了,最多可以显示引用的拆分的文档,如果拆分有误,则无法恢复重来。所以,最好先备份,再进行拆分。可以参考这篇,注意需要全部选中后再创建。

2024-04-08 18:45:00 289

原创 C语言宏定义问题

C语言中,在定义数组时,因为数组长度需要是常量或者宏,尝试将变量按照值不同定义同一个宏的不同值,然后用宏来定义数组长度,结果发现不行。

2024-03-15 17:57:16 402

原创 C语言中,可以在子函数中动态申请一个指向二维数组的内存给调用函数使用么——看ChatGPT的回答——

这个行数组中每个元素,是指针!是的,可以在子函数中动态申请一个指向二维数组的内存,然后将其传递给调用函数使用。即先定义一个指向一维数组(可以当成行数组)的指针,即每个指针指向的是行数组,然后——关键的来了——C语言中,可以在子函数中动态申请一个指向二维数组的内存给调用函数使用么。下面是ChatGPT的回答,太专业了,比网上查的资料都好很多可能。之前还以为不行,只能以一维数组的形式返回呢。或者类似文中主函数调用赋值时写法,写成:p[i][j]

2024-03-15 17:31:56 476

原创 二级指针作为函数参数——可以改变调用函数中传入指针的值(不是指向地址的值哦!)

对里面的程序进行一些修改和补充,调试加更多说明。

2024-03-12 15:27:58 750

测试信号,20秒的一个ad数据

测试信号,20秒的一个ad数据

2024-09-11

VS生成C++动态链接库DLL

VS生成C++动态链接库DLL

2024-01-18

空空如也

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

TA关注的人

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