From 9e2dd4df4abc3b44eb06a21c290dd04f05acef43 Mon Sep 17 00:00:00 2001 From: ninglang Date: Sat, 11 May 2024 13:03:04 +0800 Subject: [PATCH] Site updated: 2024-05-11 13:03:03 --- categories/Math-model/index.html | 16 + search.xml | 854 +++++++++++++++---------------- 2 files changed, 443 insertions(+), 427 deletions(-) diff --git a/categories/Math-model/index.html b/categories/Math-model/index.html index acee07daa..42cbd5281 100644 --- a/categories/Math-model/index.html +++ b/categories/Math-model/index.html @@ -307,3 +307,19 @@

Math Model +n-n1-shared.com","placeholder":"Just go go","avatar":"mm","meta":["nick"],"pageSize":10,"lang":"zh-cn","visitor":false,"comment_count":true,"recordIP":false,"enableQQ":true,"requiredFields":["nick"],"el":"#valine-comments","path":"/categories/Math-model/"} + + + + diff --git a/search.xml b/search.xml index 25e285676..771e6b74b 100644 --- a/search.xml +++ b/search.xml @@ -1,102 +1,5 @@ - - Android Adb Command - /2021/10/24/Android-Adb-Command/ - 安卓小技巧

- -

recovery 模式下使用adb

-

首先在电脑中找到adbkey.pub文件,我的默认地址是.android,通过一些手段移入安卓设备的一个分区/data/misc/adb/adb_keys文件中,下面是push的的方法,当然也可以用第三方rec直接导入

-
adb push ~/.android/adbkey.pub /data/misc/adb/adb_keys
-

wifi连接adb

-
adb connect ip:5555
-

断开连接

-
adb disconnect ip:5555
-

备份文件

-

备份文件的方法主要用adb pull,这里以tim为例,可以这样做

-
adb pull /data/data/com.tencent.tim ./tim
-

切记,备份时最好用linux操作系统,Windows总是会有一些莫名的错误,备份安装包

-
adb pull /data/app/  ./app
-

备份sdcard的数据

-
adb pull ./sdcard/Android/data/com.tencent.tim ./com.tencent.tim 
-

使用脚本备份文件,下载下面的脚本,将备份的文件导入电脑

-
adb pull /storage/emulated/0/back/ ./back
-

联系人备份

-

恢复App

-

微信等软件不支持降级,可以先用下面命令将数据传入(需要在安装magisk之后)

-
adb push ./tim /data/com.tencent.tim 
-

然后使用下面的语句对应用进行安装

-
adb install ./tim.apk
-

登录时可能会报错,这时可以采用TitaniumBackup对这个软件备份,卸载整个软件,数据,用TitaniumBackup恢复应用程序

-

卸载app但保留数据和缓存文件:

-

adb shell pm uninstall -k 包名

-

恢复data的app

-

首先安装apk,打开,然后用push将data push到手机中去

-
push ./mm/* /data/data/com.tencent.mm
-

微信降级

-

首先,将data -push之后,应该可以看到最新版本的微信的聊天记录是data里面的,然后,使用

-
adb shell pm uninstall -k com.tencent.mm
-

重新启动手机

-

然后使用adb安装软件(微信)

-
adb install weixing.apk
-

可以完成无需登录的降级

-

钛备份恢复文件

-

之前之所以没有用钛备份,是考虑到钛备份没有一些很必要的功能,例如,我的微信的语音、以及图片,都没有办法备份,现在,只需要开启钛备份中设置的preferences->backup app external data->enabled(always).就可以,这事,就会备份语音,而且,在微信等软件的高版本的情况下,可以直接使用钛备份使用恢复历史版本仅APP即可。

-

输入内核

-

首先,将内核文件*.zip移动到手机中,然后用在用twrp对它进行刷入,直接刷入即可

-

adb su

-

adb su由于某些原因打不开,这时候要强制打开使用这个链接中release中的zip,然后用面具刷入,即可

-

然后使用

-
adb root
adb remount
-

即可完成整个提权,文件读写权限

-

Magisk

-
    -
  1. 先下载HttpCanary点击下载,再用这个命令对证书进行移动
  2. -
-
mv -f /data/misc/user/0/cacerts-added/12abc345.0 $MODDIR/system/etc/security/cacerts
-
    -
  1. 禁止某个ip(magisk20.3):下载ipforbidden模块,刷入,即可
  2. -
-

开机模式下软件操作

-
adb shell pm list packages
-

可以加上查询字

-
adb shell pm list packages | grep 'miui'
-

获取root权限

-
adb root
-

保留数据卸载,此方法可用于微信降级

-
adb  uninstall -k com.tencent.tim
-

安装apk

-
adb  install  com.tencent.tim
-

安卓分区

-
    -
  • system

    -

    这个分区无所谓,每次刷机刷的就是这个

  • -
  • data

    -

    这个分区就是软件数据放的地方,小心格式化

  • -
  • persist

    -

    储存账户密码,如果这个分区损坏,会出现储存读取错误,使用官方的线刷包中的persist即可以恢复。

  • -
  • vendor

  • -
  • recovery

    -

    这个是在fastboot模式下刷入的分区

  • -
  • boot

  • -
  • cache

    -

    这个分区只是具有记录功能,擦除不影响使用,不会影响任何数据

  • -
  • misc

    -

    这个分区是放硬件配置信息的,USB,adb

  • -
  • sdcard

    -

    这个分区就是存储卡分区,没什么特别的

  • -
-]]>
- - Android - -
C&&C++问题总汇(1) /2021/09/20/C&&C++%E9%97%AE%E9%A2%98%E6%80%BB%E6%B1%87(1)/ @@ -305,6 +208,103 @@ transfer,but it seem that we have really passed a,b into the function coding + + Android Adb Command + /2021/10/24/Android-Adb-Command/ + 安卓小技巧

+ +

recovery 模式下使用adb

+

首先在电脑中找到adbkey.pub文件,我的默认地址是.android,通过一些手段移入安卓设备的一个分区/data/misc/adb/adb_keys文件中,下面是push的的方法,当然也可以用第三方rec直接导入

+
adb push ~/.android/adbkey.pub /data/misc/adb/adb_keys
+

wifi连接adb

+
adb connect ip:5555
+

断开连接

+
adb disconnect ip:5555
+

备份文件

+

备份文件的方法主要用adb pull,这里以tim为例,可以这样做

+
adb pull /data/data/com.tencent.tim ./tim
+

切记,备份时最好用linux操作系统,Windows总是会有一些莫名的错误,备份安装包

+
adb pull /data/app/  ./app
+

备份sdcard的数据

+
adb pull ./sdcard/Android/data/com.tencent.tim ./com.tencent.tim 
+

使用脚本备份文件,下载下面的脚本,将备份的文件导入电脑

+
adb pull /storage/emulated/0/back/ ./back
+

联系人备份

+

恢复App

+

微信等软件不支持降级,可以先用下面命令将数据传入(需要在安装magisk之后)

+
adb push ./tim /data/com.tencent.tim 
+

然后使用下面的语句对应用进行安装

+
adb install ./tim.apk
+

登录时可能会报错,这时可以采用TitaniumBackup对这个软件备份,卸载整个软件,数据,用TitaniumBackup恢复应用程序

+

卸载app但保留数据和缓存文件:

+

adb shell pm uninstall -k 包名

+

恢复data的app

+

首先安装apk,打开,然后用push将data push到手机中去

+
push ./mm/* /data/data/com.tencent.mm
+

微信降级

+

首先,将data +push之后,应该可以看到最新版本的微信的聊天记录是data里面的,然后,使用

+
adb shell pm uninstall -k com.tencent.mm
+

重新启动手机

+

然后使用adb安装软件(微信)

+
adb install weixing.apk
+

可以完成无需登录的降级

+

钛备份恢复文件

+

之前之所以没有用钛备份,是考虑到钛备份没有一些很必要的功能,例如,我的微信的语音、以及图片,都没有办法备份,现在,只需要开启钛备份中设置的preferences->backup app external data->enabled(always).就可以,这事,就会备份语音,而且,在微信等软件的高版本的情况下,可以直接使用钛备份使用恢复历史版本仅APP即可。

+

输入内核

+

首先,将内核文件*.zip移动到手机中,然后用在用twrp对它进行刷入,直接刷入即可

+

adb su

+

adb su由于某些原因打不开,这时候要强制打开使用这个链接中release中的zip,然后用面具刷入,即可

+

然后使用

+
adb root
adb remount
+

即可完成整个提权,文件读写权限

+

Magisk

+
    +
  1. 先下载HttpCanary点击下载,再用这个命令对证书进行移动
  2. +
+
mv -f /data/misc/user/0/cacerts-added/12abc345.0 $MODDIR/system/etc/security/cacerts
+
    +
  1. 禁止某个ip(magisk20.3):下载ipforbidden模块,刷入,即可
  2. +
+

开机模式下软件操作

+
adb shell pm list packages
+

可以加上查询字

+
adb shell pm list packages | grep 'miui'
+

获取root权限

+
adb root
+

保留数据卸载,此方法可用于微信降级

+
adb  uninstall -k com.tencent.tim
+

安装apk

+
adb  install  com.tencent.tim
+

安卓分区

+
    +
  • system

    +

    这个分区无所谓,每次刷机刷的就是这个

  • +
  • data

    +

    这个分区就是软件数据放的地方,小心格式化

  • +
  • persist

    +

    储存账户密码,如果这个分区损坏,会出现储存读取错误,使用官方的线刷包中的persist即可以恢复。

  • +
  • vendor

  • +
  • recovery

    +

    这个是在fastboot模式下刷入的分区

  • +
  • boot

  • +
  • cache

    +

    这个分区只是具有记录功能,擦除不影响使用,不会影响任何数据

  • +
  • misc

    +

    这个分区是放硬件配置信息的,USB,adb

  • +
  • sdcard

    +

    这个分区就是存储卡分区,没什么特别的

  • +
+]]>
+ + Android + +
通信原理笔记 /2023/05/23/Communication%20principle/ @@ -500,61 +500,6 @@ max(dp[i-1][j],dp[i-1][j-weight[i]]+value[i]) coding - - 数字电子基础 - /2022/03/14/Digital%20Electronics%20Fundamentals/ - 一些数电不太能理解的地方

- -

反相器

-

COMS电路

-
    -
  • CMOS的输出特性,CMOS受负载的输出高低电平变化
  • -
  • \(V_{OH}\quad V_{OL}...\)的取法(噪声容限)
  • -
  • CMOS门不允许悬空,和地面的电阻相接不影响
  • -
  • CMOS电路的输入端不允许悬空,因为悬空会使电位不定,破坏正常的逻辑关系。另外,悬空时输入阻抗高,易受外界噪声干扰,使电路产生误动作,而且也极易造成栅极感应静电而击穿。
  • -
-

TTL电路

-
    -
  • 扇出系数的概念,计算

  • -
  • 漏电流

  • -
  • \(T_{cd}和T_{pd}\),为什么\(T_{cd}=0\)的时候,将无法信任电平

    -

    因为\(T_{cd}=0\),表面一旦高电平降低,那么电路进入无效区,这时候就需要重新,\(T_{cd}可以变大点\)

  • -
  • 交流噪声容限(是指噪声信号是高频吗?)

  • -
  • TTL电源不允许大幅调整,不允许超过10%

  • -
  • TTL电路输入端通过电阻接地,电阻值R的大小直接影响电路所处的状态。

  • -
-
- - -
-
    -
  • OC门上拉电阻的选择,不能太大,是担心输出高电平的时候不能输出高电平,不能太小,是因为担心输出低电平的时候电流太大损坏管子(最坏的情况,只有一个管子接地),高电平的时候内阻近视为上拉电阻,而低电平的时候内阻相当于管子的阻抗,这时要求内阻较小
  • -
-
- - -
-
    -
  • OC门和OD的优势:电平偏移,也就是说,输出的电平可以通过上拉电阻来调整
  • -
-]]>
- - 电子 - -
专业英语 /2023/06/05/English_profess/ @@ -642,34 +587,58 @@ means:“我们还与以前依赖于手动定义的样式和内容分解或共 - 毛概实践课 - /2022/06/10/Introduction%20to%20Mao%20Zedong%20Thought/ - 毛概实践课🤗

+ 数字电子基础 + /2022/03/14/Digital%20Electronics%20Fundamentals/ + 一些数电不太能理解的地方

-

经过我们小组接近三个星期的努力,没错!它来了,毛概实践课的成果😁,它可能不是那么优秀,但的确是我们努力的成果

- - - -

看看我们的大合照😁:

-

-

​ -哈哈哈,还希望大家不要吐槽我的眯眯眼😛,当时光线太强,实在睁不开眼,不是故意的哈😜。我的ps技术也不是很好,只能做成这样,还希望大家多多担待

-

​ -这次实践课给我留下印象还是很十分的深刻的,疫情期间,我这边(一个人在学校)要是没有室友们的帮助,估计是完成不了的,视频剪辑的时候,我和邵明禹哥哥把pr工程文件传来传去(每次都是2~3个G),邵明禹哥哥吐槽了n多次网络问题,我这边修改视频的时候,也不知道怎么回事,pr崩了5、6次,还把我的素材直接全部删除了😭,找也找不回,最后只能重新剪辑。

+

反相器

+

COMS电路

+
    +
  • CMOS的输出特性,CMOS受负载的输出高低电平变化
  • +
  • \(V_{OH}\quad V_{OL}...\)的取法(噪声容限)
  • +
  • CMOS门不允许悬空,和地面的电阻相接不影响
  • +
  • CMOS电路的输入端不允许悬空,因为悬空会使电位不定,破坏正常的逻辑关系。另外,悬空时输入阻抗高,易受外界噪声干扰,使电路产生误动作,而且也极易造成栅极感应静电而击穿。
  • +
+

TTL电路

+
    +
  • 扇出系数的概念,计算

  • +
  • 漏电流

  • +
  • \(T_{cd}和T_{pd}\),为什么\(T_{cd}=0\)的时候,将无法信任电平

    +

    因为\(T_{cd}=0\),表面一旦高电平降低,那么电路进入无效区,这时候就需要重新,\(T_{cd}可以变大点\)

  • +
  • 交流噪声容限(是指噪声信号是高频吗?)

  • +
  • TTL电源不允许大幅调整,不允许超过10%

  • +
  • TTL电路输入端通过电阻接地,电阻值R的大小直接影响电路所处的状态。

  • +
- +src="https://picturnl.oss-cn-shanghai.aliyuncs.com/image-20220314165358358.png" +alt="输入电流特性" /> +
-

​ -这次大家没能全员出镜,可以算得上团队火力没有全开吧,但是我个人感觉还是不错的,因为在刚开始选题的时候,就想要做一些有思想深度的视频,疫情期间,多个人不能见面的情况下,从个体的角度入手,个体和个体之间用一些手段连接,去拔高整个实践课的深度,我认为是可行的。

-

​ -总之,十分感谢那些和我一起走过这段道路的小伙伴,谢谢你们的付出,也谢谢那些帮助我们完成实践课的各位同学,就如视频所说,你们是冬天里的暖阳😉😉😉😉。

+
    +
  • OC门上拉电阻的选择,不能太大,是担心输出高电平的时候不能输出高电平,不能太小,是因为担心输出低电平的时候电流太大损坏管子(最坏的情况,只有一个管子接地),高电平的时候内阻近视为上拉电阻,而低电平的时候内阻相当于管子的阻抗,这时要求内阻较小
  • +
+
+ + +
+
    +
  • OC门和OD的优势:电平偏移,也就是说,输出的电平可以通过上拉电阻来调整
  • +
]]>
- 思想觉悟 + 电子
@@ -774,21 +743,6 @@ ChatGPT(一):十分钟读懂 Transformer - 知乎

code
- - LinkWe Technology - /2021/10/08/LinkWe/ - LinkWe Technology product

- - -]]>
- - Product design - -
Neural network(1)---Logistic Regression /2021/08/24/Neural-network(1)---Logistic-Regression/ @@ -937,6 +891,109 @@ figure,see whether it is overfit or not ? Neural Network + + 毛概实践课 + /2022/06/10/Introduction%20to%20Mao%20Zedong%20Thought/ + 毛概实践课🤗

+ +

经过我们小组接近三个星期的努力,没错!它来了,毛概实践课的成果😁,它可能不是那么优秀,但的确是我们努力的成果

+ + + +

看看我们的大合照😁:

+

+

​ +哈哈哈,还希望大家不要吐槽我的眯眯眼😛,当时光线太强,实在睁不开眼,不是故意的哈😜。我的ps技术也不是很好,只能做成这样,还希望大家多多担待

+

​ +这次实践课给我留下印象还是很十分的深刻的,疫情期间,我这边(一个人在学校)要是没有室友们的帮助,估计是完成不了的,视频剪辑的时候,我和邵明禹哥哥把pr工程文件传来传去(每次都是2~3个G),邵明禹哥哥吐槽了n多次网络问题,我这边修改视频的时候,也不知道怎么回事,pr崩了5、6次,还把我的素材直接全部删除了😭,找也找不回,最后只能重新剪辑。

+
+ + +
+

​ +这次大家没能全员出镜,可以算得上团队火力没有全开吧,但是我个人感觉还是不错的,因为在刚开始选题的时候,就想要做一些有思想深度的视频,疫情期间,多个人不能见面的情况下,从个体的角度入手,个体和个体之间用一些手段连接,去拔高整个实践课的深度,我认为是可行的。

+

​ +总之,十分感谢那些和我一起走过这段道路的小伙伴,谢谢你们的付出,也谢谢那些帮助我们完成实践课的各位同学,就如视频所说,你们是冬天里的暖阳😉😉😉😉。

+]]>
+ + 思想觉悟 + +
+ + LinkWe Technology + /2021/10/08/LinkWe/ + LinkWe Technology product

+ + +]]>
+ + Product design + +
+ + Qt + /2021/09/20/Qt1/ + Qt问题总汇

+ +

信号和槽

+

连接函数:connect

+
connect(信号发送者,发送的信号(函数的地址),信号接受者,处理的槽函数(函数的地址));
connect(Button,&QpushButton::clicked,this,&Qwidget::close);
+

松散耦合:发送端和接受端的松散耦合

+

自定义槽函数和信号

+
    +
  • signal只能声明,不能定义,写在发送信号的类的signals中,返回值是void
  • +
  • slot需要声明,需要在cpp文件中定义,写在public slots文件中,返回值是void
  • +
+
class.h
public slots:
// slots function area or declaration in public
//return is void,need declaration ,and realize.
void treat();
};


class.cpp
void Studnet::treat(){
qDebug()<<"treat!";
}
+
signals:
//custom signals
//return is void,only declaration ,Needn't realize
void hungry();
+

定义槽和信号后,需要定义触发函数

+
weidget:
void classover();
void classover(){
emit zt->hungry();
}
+

要先定义connect再调用classover

+

信号的重载

+

信号函数和槽函数直接重载时,会因为二义性而导致程序无法编译,于是我们需要用函数指针来代替直接给地址,方法如下:

+
void(Teacher:: *teachersignal)(QString)=&Teacher::hungry;
void(Studnet:: *studentslot)(QString) = &Studnet::treat;

connect(zt,teachersignal::hungry,st,studentslot);
+
    +
  • 问题:这里的两个函数指针是如何定义的???
  • +
  • 答:
  • +
+

Qstring 转char *

+
Qstring.toUtf8().data()  //先转utf8,再转char*
+

信号连接信号

+
connect(btn,&QPushButton::clicked,zt,teachersignal2);
+

直接将两个信号用connect相连

+
    +
  • 断开信号 disconnect

  • +
  • 多个信号一个槽

  • +
  • 多个槽连接一个信号

  • +
  • 信号和槽的参数类型必须一一对应,信号参数个数可以大于槽函数的参数个数

  • +
+

lambda函数

+
//connect 一般使用方法
connect(信号发送者,发送的信号(函数的地址),信号接受者,处理的槽函数(函数的地址));

//lambda 使用的方式
connect(btn3,&QPushButton::clicked,this,[=](){
btn3->move(200,100);});
//可以省略this
connect(btn3,&QPushButton::clicked,[=](){
btn3->move(200,100);});
+
    +
  • 问:为什么lambda的函数不像之前的函数一样,需要取地址符&.
  • +
  • 答:可以不加取地址符,但是早期Qt并不支持.
  • +
+

模态与非模态

+

模态

+
connect(ui->actionnew,&QAction::triggered,[=](){
QDialog dlg(this);
dlg.resize(200,100);
dlg.exec(); //对话框窗口保持
qDebug()<<"modal dialog!";
+

非模态

+
[=](){QDialog dig2(this);
dig2.show(); //无法保持,一闪而过
}
QDialog *dig2 =new QDialog(this);
dig2->show(); //可以保持(堆区)
+
    +
  • 问:指针调用和对象调用为什么会出现不一样的结果?
  • +
  • 答:
  • +
+]]>
+ + coding + +
Pointer /2021/09/03/Point/ @@ -1048,63 +1105,6 @@ src="https://picturnl.oss-cn-shanghai.aliyuncs.com/20230613160326.png" />

生活
- - Qt - /2021/09/20/Qt1/ - Qt问题总汇

- -

信号和槽

-

连接函数:connect

-
connect(信号发送者,发送的信号(函数的地址),信号接受者,处理的槽函数(函数的地址));
connect(Button,&QpushButton::clicked,this,&Qwidget::close);
-

松散耦合:发送端和接受端的松散耦合

-

自定义槽函数和信号

-
    -
  • signal只能声明,不能定义,写在发送信号的类的signals中,返回值是void
  • -
  • slot需要声明,需要在cpp文件中定义,写在public slots文件中,返回值是void
  • -
-
class.h
public slots:
// slots function area or declaration in public
//return is void,need declaration ,and realize.
void treat();
};


class.cpp
void Studnet::treat(){
qDebug()<<"treat!";
}
-
signals:
//custom signals
//return is void,only declaration ,Needn't realize
void hungry();
-

定义槽和信号后,需要定义触发函数

-
weidget:
void classover();
void classover(){
emit zt->hungry();
}
-

要先定义connect再调用classover

-

信号的重载

-

信号函数和槽函数直接重载时,会因为二义性而导致程序无法编译,于是我们需要用函数指针来代替直接给地址,方法如下:

-
void(Teacher:: *teachersignal)(QString)=&Teacher::hungry;
void(Studnet:: *studentslot)(QString) = &Studnet::treat;

connect(zt,teachersignal::hungry,st,studentslot);
-
    -
  • 问题:这里的两个函数指针是如何定义的???
  • -
  • 答:
  • -
-

Qstring 转char *

-
Qstring.toUtf8().data()  //先转utf8,再转char*
-

信号连接信号

-
connect(btn,&QPushButton::clicked,zt,teachersignal2);
-

直接将两个信号用connect相连

-
    -
  • 断开信号 disconnect

  • -
  • 多个信号一个槽

  • -
  • 多个槽连接一个信号

  • -
  • 信号和槽的参数类型必须一一对应,信号参数个数可以大于槽函数的参数个数

  • -
-

lambda函数

-
//connect 一般使用方法
connect(信号发送者,发送的信号(函数的地址),信号接受者,处理的槽函数(函数的地址));

//lambda 使用的方式
connect(btn3,&QPushButton::clicked,this,[=](){
btn3->move(200,100);});
//可以省略this
connect(btn3,&QPushButton::clicked,[=](){
btn3->move(200,100);});
-
    -
  • 问:为什么lambda的函数不像之前的函数一样,需要取地址符&.
  • -
  • 答:可以不加取地址符,但是早期Qt并不支持.
  • -
-

模态与非模态

-

模态

-
connect(ui->actionnew,&QAction::triggered,[=](){
QDialog dlg(this);
dlg.resize(200,100);
dlg.exec(); //对话框窗口保持
qDebug()<<"modal dialog!";
-

非模态

-
[=](){QDialog dig2(this);
dig2.show(); //无法保持,一闪而过
}
QDialog *dig2 =new QDialog(this);
dig2->show(); //可以保持(堆区)
-
    -
  • 问:指针调用和对象调用为什么会出现不一样的结果?
  • -
  • 答:
  • -
-]]>
- - coding - -
Python 机器学习 /2022/01/19/Python%E5%9B%BE%E5%83%8F%E8%AF%86%E5%88%AB/ @@ -1156,6 +1156,49 @@ href="https://www.piwheels.org/project/opencv-python/">opencv-python下载 coding + + DSP + /2022/03/14/Signals%20and%20Systems/ + 信号与系统笔记

+

DSP相关讨论

+ +

常用指令

+
    +
  1. 导出时设置颜色为透明色:
  2. +
+
set(gca,'color','none');
+
    +
  1. 设置matlab图像默认为白色:
  2. +
+
set(0,'defaultfigurecolor','w')
+
    +
  1. 设置动画:
  2. +
+
% 画一下sinc函数随着参数变化时的图像变化
fig = figure;
% x = linspace(0, 2*pi, 100);
t=-3:0.001:3;
im = cell(1, 20);
for i = 1:15

clf(fig);
dis=0.8;
func1= sinc_me(t,10*i);
func2= sinc_me(t-0.02*pi,10*i);
subplot(2,1,1);
plot(t,func1);
hold on;
plot(t,func2);
legend('N=10','N=10');
subplot(2,1,2);
plot(t,func1+func2);
set(get(gca, 'Title'), 'String', num2str(i));
hold off;
% plot(x, y, 'Color', all_colors(1, :), 'LineWidth', 2);
% xlim([0, 2*pi]);
pause();
% 注释下面两句话可以看到动态输出
% frame = getframe(fig);
% im{i} = frame2im(frame);
end
% 下面是保存成 gif
% filename = './Matlab_2_7_6_Curve_Animation1.gif';
% for idx = 1:20
% % 制作gif文件,图像必须是index索引图像
% [A, map] = rgb2ind(im{idx}, 256);
% if idx == 1
% imwrite(A, map, filename, 'gif', 'LoopCount', Inf, 'DelayTime', 0.3);
% else
% imwrite(A, map, filename, 'gif', 'WriteMode', 'append', 'DelayTime', 0.3);
% end
% end
+
    +
  1. 设置latex显示
  2. +
+
set(get(gca, 'Title'), 'String','$x_1(k)$', 'interpreter','latex','Fontsize',18);
+
    +
  1. 设置画布大小(其中0.7和0.6是画布的长和宽)
  2. +
+
figure('units','normalized','position',[0.1,0.1,0.7,0.6])
+

+]]>
+ + 电子 + +
+ + 学业生涯规划指导经验交流贴 + /2023/10/31/Study%20exchange%20meeting/ + 欢迎交流

+ +]]>
+ + 学习 + +
树莓派实现联邦学习 /2023/12/29/Raspberry_federated_learning/ @@ -1249,72 +1292,29 @@ href="https://pytorch.org/">PyTorch,conda无法正常安装,采用pi

Torch的安装

对于树莓派(使用arrch64的ubuntu或者raspberry os),先到torch-wheel下载文件,再手动安装

-
    -
  • 对于没有GPU的板子,直接安装
  • -
-
#注意:torch和torchvision一一对应,请安装对应的版本
pip install torch==1.10.0+cpu torchvision==0.11.1+cpu -f https://download.pytorch.org/whl/torch_stable.html
-

设置代理

-
export http_proxy=http://192.168.10.4:7890
export https_proxy=http://192.168.10.4:7890
-

jupyter配置

-
    -
  • 先生成jupyter的配置文件夹
  • -
-
jupyter notebook --generate-config
-

可以看到生成了/home/ninglang/.jupyter/jupyter_notebook_config.py.

-
    -
  • 设置jupyter的密码,运行下面命令之后输入密码即可
  • -
-
jupyter notebook password
-
    -
  • 修改配置文件(端口,ip,外部访问)修改/home/ninglang/.jupyter/jupyter_notebook_config.py文件
  • -
-
c.NotebookApp.ip='*'       #在所有的网卡接口上开启服务

c.NotebookApp.port =8888 #可自行指定一个端口, 访问时使用该端口7777

c.NotebookApp.allow_remote_access = True #允许远程
-]]> - - Code - -
- - DSP - /2022/03/14/Signals%20and%20Systems/ - 信号与系统笔记

-

DSP相关讨论

- -

常用指令

-
    -
  1. 导出时设置颜色为透明色:
  2. -
-
set(gca,'color','none');
-
    -
  1. 设置matlab图像默认为白色:
  2. -
-
set(0,'defaultfigurecolor','w')
-
    -
  1. 设置动画:
  2. -
-
% 画一下sinc函数随着参数变化时的图像变化
fig = figure;
% x = linspace(0, 2*pi, 100);
t=-3:0.001:3;
im = cell(1, 20);
for i = 1:15

clf(fig);
dis=0.8;
func1= sinc_me(t,10*i);
func2= sinc_me(t-0.02*pi,10*i);
subplot(2,1,1);
plot(t,func1);
hold on;
plot(t,func2);
legend('N=10','N=10');
subplot(2,1,2);
plot(t,func1+func2);
set(get(gca, 'Title'), 'String', num2str(i));
hold off;
% plot(x, y, 'Color', all_colors(1, :), 'LineWidth', 2);
% xlim([0, 2*pi]);
pause();
% 注释下面两句话可以看到动态输出
% frame = getframe(fig);
% im{i} = frame2im(frame);
end
% 下面是保存成 gif
% filename = './Matlab_2_7_6_Curve_Animation1.gif';
% for idx = 1:20
% % 制作gif文件,图像必须是index索引图像
% [A, map] = rgb2ind(im{idx}, 256);
% if idx == 1
% imwrite(A, map, filename, 'gif', 'LoopCount', Inf, 'DelayTime', 0.3);
% else
% imwrite(A, map, filename, 'gif', 'WriteMode', 'append', 'DelayTime', 0.3);
% end
% end
-
    -
  1. 设置latex显示
  2. -
-
set(get(gca, 'Title'), 'String','$x_1(k)$', 'interpreter','latex','Fontsize',18);
-
    -
  1. 设置画布大小(其中0.7和0.6是画布的长和宽)
  2. -
-
figure('units','normalized','position',[0.1,0.1,0.7,0.6])
-

-]]>
- - 电子 - -
- - 学业生涯规划指导经验交流贴 - /2023/10/31/Study%20exchange%20meeting/ - 欢迎交流

- +
    +
  • 对于没有GPU的板子,直接安装
  • +
+
#注意:torch和torchvision一一对应,请安装对应的版本
pip install torch==1.10.0+cpu torchvision==0.11.1+cpu -f https://download.pytorch.org/whl/torch_stable.html
+

设置代理

+
export http_proxy=http://192.168.10.4:7890
export https_proxy=http://192.168.10.4:7890
+

jupyter配置

+
    +
  • 先生成jupyter的配置文件夹
  • +
+
jupyter notebook --generate-config
+

可以看到生成了/home/ninglang/.jupyter/jupyter_notebook_config.py.

+
    +
  • 设置jupyter的密码,运行下面命令之后输入密码即可
  • +
+
jupyter notebook password
+
    +
  • 修改配置文件(端口,ip,外部访问)修改/home/ninglang/.jupyter/jupyter_notebook_config.py文件
  • +
+
c.NotebookApp.ip='*'       #在所有的网卡接口上开启服务

c.NotebookApp.port =8888 #可自行指定一个端口, 访问时使用该端口7777

c.NotebookApp.allow_remote_access = True #允许远程
]]>
- 学习 + Code
@@ -2130,42 +2130,6 @@ class="math inline">\(O(1)\) coding - - ikuai-docker自建webdav - /2024/01/30/docker%E8%87%AA%E5%BB%BAwebdav/ - 这是一篇有关使用ikuai搭建webdav的博客,并且实现了ipv6的访问

- -

安装webdav

-

镜像:bytemark/webdav:latest

-

目录挂载:/seafile/smb/music/var/lib/dav/data

-

环境变量:

-

USERNAME

-

PASSWORD

-

LOCATION

-

AUTH_TYPE:Basic

-

修改编码为utf8

-
vi conf/conf-enabled/dav.conf
-

修改为utf8

-
<Directory "/var/lib/dav/data/">
Dav On
Options Indexes FollowSymLinks

AuthType Basic
AuthName "WebDAV"
IndexOptions Charset=utf-8 <-----------添加这一行
AuthUserFile "/user.passwd"
<RequireAny>
Require valid-user
</RequireAny>
</Directory>
-

配置alpine-linux

-

换源

-

更换为UESTC源

-
sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
-

执行update

-
apk update
-

安装openrc

-
apk add openrc
-

添加 auto-docker 为自启动

-
rc-update add auto-docker
-

/etc/loacal.d/中添加start结尾的脚本,如docker.start,内容如下

-
if [ -f /root/script/ping.sh ]; then
/root/script/ping.sh
fi
-

更新一下

-
rc-update add local
-]]>
- - Code - -
Docker-ubuntu安装ssh /2024/01/22/docker-ubuntu-ssh%E5%AE%89%E8%A3%85/ @@ -2202,10 +2166,40 @@ class="math inline">\(O(1)\) - - /2023/10/17/index/ - + ikuai-docker自建webdav + /2024/01/30/docker%E8%87%AA%E5%BB%BAwebdav/ + 这是一篇有关使用ikuai搭建webdav的博客,并且实现了ipv6的访问

+ +

安装webdav

+

镜像:bytemark/webdav:latest

+

目录挂载:/seafile/smb/music/var/lib/dav/data

+

环境变量:

+

USERNAME

+

PASSWORD

+

LOCATION

+

AUTH_TYPE:Basic

+

修改编码为utf8

+
vi conf/conf-enabled/dav.conf
+

修改为utf8

+
<Directory "/var/lib/dav/data/">
Dav On
Options Indexes FollowSymLinks

AuthType Basic
AuthName "WebDAV"
IndexOptions Charset=utf-8 <-----------添加这一行
AuthUserFile "/user.passwd"
<RequireAny>
Require valid-user
</RequireAny>
</Directory>
+

配置alpine-linux

+

换源

+

更换为UESTC源

+
sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
+

执行update

+
apk update
+

安装openrc

+
apk add openrc
+

添加 auto-docker 为自启动

+
rc-update add auto-docker
+

/etc/loacal.d/中添加start结尾的脚本,如docker.start,内容如下

+
if [ -f /root/script/ping.sh ]; then
/root/script/ping.sh
fi
+

更新一下

+
rc-update add local
]]>
+ + Code +
Linux开发项目总结 @@ -2349,6 +2343,74 @@ verbose详细显示,-f file文件属性)

3.进入onlyoffice修改etc/onlyoffice/documentserver/default.json,修改如下

"rejectUnauthorized": false



"allowPrivateIPAddress": true,
"allowMetaIPAddress": true

重启docker

+]]> + + Code + +
+ + + /2023/10/17/index/ + +]]> + + + ikuai搭建seafile-docker + /2024/01/20/seafile6.3.4%E7%88%B1%E5%BF%AB%E7%B3%BB%E7%BB%9F%E6%90%AD%E5%BB%BA%E6%95%99%E7%A8%8B/ + 这是一篇有关使用ikuai搭建6.3.4的博客,并且实现了ipv6的访问

+ +

step1: 安装seafile-docker

+

下载seafileltd/seafile:latest镜像

+
+ + +
+

在容器设置中挂载目录

+
    +
  • /shared
  • +
+

如下环境变量设置账号和密码

+
    +
  • SEAFILE_ADMIN_EMAIL
  • +
  • SEAFILE_ADMIN_PASSWORD
  • +
+

step2:安装 iputils-ping

+

因为docker中的ipv6如果不往外界发出信号,路由是无法知道该容器的ipv6地址,所以需要安装ping工具每隔一段时间不断发包,表示心跳

+

1.更新apt包

+
apt update
+

2.安装iputils-ping

+
apt-get install -y iputils-ping
+

3.测试ping百度

+
ping -6 -c 1 www.baidu.com
+

3.编写/root/script/ping.sh

+
while true; do
ping -c 1 -6 www.baidu.com > /dev/null
sleep 15
done &
+

4.修改ping.sh为可执行文件

+
chmod +x /root/script/ping.sh
+

5.测试脚本执行情况:如下执行成功

+

6.修改自启动脚本

+

/root/.bashrc中追加

+
if [ -f /root/script/ping.sh ]; then
/root/script/ping.sh
fi
+

一般而言,由于seafile不自动开bash,因此,建议将上述加入.bashrc加入到seafile-server-latest/seafile.sh中,添加到echo "Seafile server started"的前面.

+

step3:设置nginx反向代理

+

1.创建/etc/nginx/conf.d/seafile.conf,内容如下

+
server {
listen [::]:80;
server_name seafile.ninglang.fun;

proxy_set_header X-Forwarded-For $remote_addr;

location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_read_timeout 1200s;

# used for view/edit office file via Office Online Server
client_max_body_size 0;

access_log /var/log/nginx/seahub.access.log;
error_log /var/log/nginx/seahub.error.log;
}


location /seafhttp {
rewrite ^/seafhttp(.*)$ $1 break;
proxy_pass http://127.0.0.1:8082;
client_max_body_size 0;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;

send_timeout 36000s;
}

location /seafdav {
fastcgi_pass 127.0.0.1:8080;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
client_max_body_size 0;
proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
send_timeout 36000s;

# This option is only available for Nginx >= 1.8.0. See more details below.
proxy_request_buffering off;
access_log /var/log/nginx/seafdav.access.log;
error_log /var/log/nginx/seafdav.error.log;
}

}

+

2.测试文件格式正常

+
nginx -t

#nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
#nginx: configuration file /etc/nginx/nginx.conf test is successful
+

重启docker容器

+

step4:设置seafile

+

修改SERVICE_URLFILE_SERVER_ROOT

+

SERVICE_URL:http://seafile.ninglang.fun

+

FILE_SERVER_ROOT:http://seafile.ninglang.fun/seafhttp

+

step5:设置seafdav

+

设置/conf/seafdav.conf中为

+
enabled = true
port = 8080
fastcgi = true
share_name = /seafdav
+

在手机端设置

+

网络地址:seafile.ninglang.fun/seafdav

+

账号密码如实填写

]]>
Code @@ -2484,68 +2546,6 @@ href="https://blog.csdn.net/m0_51961114/article/details/120699238">(34条消息) code
- - ikuai搭建seafile-docker - /2024/01/20/seafile6.3.4%E7%88%B1%E5%BF%AB%E7%B3%BB%E7%BB%9F%E6%90%AD%E5%BB%BA%E6%95%99%E7%A8%8B/ - 这是一篇有关使用ikuai搭建6.3.4的博客,并且实现了ipv6的访问

- -

step1: 安装seafile-docker

-

下载seafileltd/seafile:latest镜像

-
- - -
-

在容器设置中挂载目录

-
    -
  • /shared
  • -
-

如下环境变量设置账号和密码

-
    -
  • SEAFILE_ADMIN_EMAIL
  • -
  • SEAFILE_ADMIN_PASSWORD
  • -
-

step2:安装 iputils-ping

-

因为docker中的ipv6如果不往外界发出信号,路由是无法知道该容器的ipv6地址,所以需要安装ping工具每隔一段时间不断发包,表示心跳

-

1.更新apt包

-
apt update
-

2.安装iputils-ping

-
apt-get install -y iputils-ping
-

3.测试ping百度

-
ping -6 -c 1 www.baidu.com
-

3.编写/root/script/ping.sh

-
while true; do
ping -c 1 -6 www.baidu.com > /dev/null
sleep 15
done &
-

4.修改ping.sh为可执行文件

-
chmod +x /root/script/ping.sh
-

5.测试脚本执行情况:如下执行成功

-

6.修改自启动脚本

-

/root/.bashrc中追加

-
if [ -f /root/script/ping.sh ]; then
/root/script/ping.sh
fi
-

一般而言,由于seafile不自动开bash,因此,建议将上述加入.bashrc加入到seafile-server-latest/seafile.sh中,添加到echo "Seafile server started"的前面.

-

step3:设置nginx反向代理

-

1.创建/etc/nginx/conf.d/seafile.conf,内容如下

-
server {
listen [::]:80;
server_name seafile.ninglang.fun;

proxy_set_header X-Forwarded-For $remote_addr;

location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_read_timeout 1200s;

# used for view/edit office file via Office Online Server
client_max_body_size 0;

access_log /var/log/nginx/seahub.access.log;
error_log /var/log/nginx/seahub.error.log;
}


location /seafhttp {
rewrite ^/seafhttp(.*)$ $1 break;
proxy_pass http://127.0.0.1:8082;
client_max_body_size 0;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;

send_timeout 36000s;
}

location /seafdav {
fastcgi_pass 127.0.0.1:8080;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
client_max_body_size 0;
proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
send_timeout 36000s;

# This option is only available for Nginx >= 1.8.0. See more details below.
proxy_request_buffering off;
access_log /var/log/nginx/seafdav.access.log;
error_log /var/log/nginx/seafdav.error.log;
}

}

-

2.测试文件格式正常

-
nginx -t

#nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
#nginx: configuration file /etc/nginx/nginx.conf test is successful
-

重启docker容器

-

step4:设置seafile

-

修改SERVICE_URLFILE_SERVER_ROOT

-

SERVICE_URL:http://seafile.ninglang.fun

-

FILE_SERVER_ROOT:http://seafile.ninglang.fun/seafhttp

-

step5:设置seafdav

-

设置/conf/seafdav.conf中为

-
enabled = true
port = 8080
fastcgi = true
share_name = /seafdav
-

在手机端设置

-

网络地址:seafile.ninglang.fun/seafdav

-

账号密码如实填写

-]]>
- - Code - -
遗传算法 /2022/02/20/yichuan/ @@ -2573,22 +2573,6 @@ alt="image-20240120203717758" />6.修改自启动脚本

coding
- - 卷积神经网络 - /2023/06/25/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/ - 移动通信重点总结

- -

CNN可视化:CNN -Explainer

-

SWim Transform

-

Swin -Transformer迎来30亿参数的v2.0,我们应该拥抱视觉大模型吗?.

-]]>
- - Code - -
时间预测模型 /2022/02/20/%E6%97%B6%E9%97%B4%E9%A2%84%E6%B5%8B%E6%A8%A1%E5%9E%8B/ @@ -2663,6 +2647,22 @@ class="math display">\[ Math Model + + 卷积神经网络 + /2023/06/25/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/ + 移动通信重点总结

+ +

CNN可视化:CNN +Explainer

+

SWim Transform

+

Swin +Transformer迎来30亿参数的v2.0,我们应该拥抱视觉大模型吗?.

+]]>
+ + Code + +
近代史实践总结 /2022/01/03/%E8%BF%91%E4%BB%A3%E5%8F%B2%E5%AE%9E%E8%B7%B5%E6%80%BB%E7%BB%93/