<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[weixin_44015821的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/weixin_44015821</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; weixin_44015821]]></copyright><item><title><![CDATA[利用二级结构和contact引导的差分进化来进行蛋白质结构的预测]]></title><link>https://blog.youkuaiyun.com/weixin_44015821/article/details/106171116</link><guid>https://blog.youkuaiyun.com/weixin_44015821/article/details/106171116</guid><author>weixin_44015821</author><pubDate>Thu, 21 May 2020 21:15:12 +0800</pubDate><description><![CDATA[文章题目：Secondary Structure and Contact Guided Differential Evolution for Protein Structure Prediction

最近看了师兄的论文，打算写个博客记录一下，免得几个月后又忘记了。好记性不如烂笔头，这个懒不能偷，血的教训，去年把杨建益老师的trRosetta理解了一遍，放了4个月的寒假，再拿起来看，脑子里全是问号，好生气！

目前，主要有两个问题严重地限制了蛋白质结构预测的准确性。

1.在巨大的构想空间中寻找接近天然态的]]></description><category></category></item><item><title><![CDATA[将npz文件转化为txt文件中出现错误（ValueError: Expected 1D or 2D array, got 3D array instead）的解决办法]]></title><link>https://blog.youkuaiyun.com/weixin_44015821/article/details/106266420</link><guid>https://blog.youkuaiyun.com/weixin_44015821/article/details/106266420</guid><author>weixin_44015821</author><pubDate>Thu, 21 May 2020 20:08:04 +0800</pubDate><description><![CDATA[seq.npz直接使用Notepad++打开发生错误，试着使用python去读这个文件包。
import numpy as np

# %%
seq_data = np.load('seq.npz')
print(seq_data.files)
# %%
dist = seq_data['dist']
omega = seq_data['omega']
theta = seq_data['theta']
phi = seq_data['phi']

np.savetxt('seq_data.txt',dis]]></description><category></category></item><item><title><![CDATA[为什么协方差矩阵求逆可以消除间接耦合]]></title><link>https://blog.youkuaiyun.com/weixin_44015821/article/details/106202585</link><guid>https://blog.youkuaiyun.com/weixin_44015821/article/details/106202585</guid><author>weixin_44015821</author><pubDate>Mon, 18 May 2020 22:19:37 +0800</pubDate><description><![CDATA[之前看论文的时候，发现协方差矩阵求逆就是精确矩阵，一直非常难以理解，为什么协方差矩阵求逆可以消除间接耦合。一般情况下，如果想知道两个随机变量之间的关系，可以利用协方差矩阵，计算相关矩阵系数来得出它们之间的关系，若相关矩阵系数为0，则它们之间的关系是独立的，若相关矩阵系数&gt;0，则它们呈正相关的关系，若相关矩阵系数&lt;0，则它们呈负相关系数。但是通过与正确结果相比，这个矩阵显示出的信息是粗糙的。比如一条序列有n个残基，两两残基之间的关系，真实的情况中有5%的残基对之间是独立的，但是利用协方差矩阵计算出]]></description><category></category></item><item><title><![CDATA[贝叶斯算法的理解（结合拼写纠正实例和垃圾邮件实例）]]></title><link>https://blog.youkuaiyun.com/weixin_44015821/article/details/106195699</link><guid>https://blog.youkuaiyun.com/weixin_44015821/article/details/106195699</guid><author>weixin_44015821</author><pubDate>Mon, 18 May 2020 20:02:13 +0800</pubDate><description><![CDATA[1.贝叶斯要解决的问题：

(1)正向概率：假设袋子里面有N个白球，M个黑球，你伸手进去摸一把，摸出黑球的概率有多大。

(2)逆向概率：如果我们事先并不知道袋子里面黑白球的比例，而是闭着眼睛摸出一个（或好几个）球，观察这些取出来的球的颜色之后，那么我们可以就此对袋子里面的黑白球的比例做出什么样的推测。

(3)贝叶斯公式：P(A|B)=P(A)*P(B|A)/P(B)

2.贝叶斯实例

问题一：拼写纠正实例（我们看到用户输入了一个不在字典中的单词，我们需要去猜测“这个家伙到底想输入的单词是什么？”）

]]></description><category></category></item><item><title><![CDATA[对信息量、熵、相对熵、交叉熵的简单理解]]></title><link>https://blog.youkuaiyun.com/weixin_44015821/article/details/106140982</link><guid>https://blog.youkuaiyun.com/weixin_44015821/article/details/106140982</guid><author>weixin_44015821</author><pubDate>Fri, 15 May 2020 14:41:05 +0800</pubDate><description><![CDATA[1.信息量：显而易见的事情。信息量较小，不常发生的事情，信息量较大。

假设X是离散随机变量，其取值范围为I，概率分布P(x) = Pr(X = x)，xI，则定义事件X = x0的信息量为I(X0) = -log(P(x0))

2.熵：对于某个事件，有n种可能，每一种可能性都有一个概率P(x)，熵用来表示所有信息量的期望，即H(x) = -

3.相对熵(KL散度)：对于同一个随机变量X，有两个单独的概率P(X)和Q(X)，我们可以用KL散度来衡量两个分布的差异。

在机器学习中，P往往用来表示样本的真]]></description><category></category></item><item><title><![CDATA[JS中Generator实现（yield关键字、return关键字）]]></title><link>https://blog.youkuaiyun.com/weixin_44015821/article/details/106121771</link><guid>https://blog.youkuaiyun.com/weixin_44015821/article/details/106121771</guid><author>weixin_44015821</author><pubDate>Thu, 14 May 2020 16:38:23 +0800</pubDate><description><![CDATA[1.Generator是ES6中新增的语法，和Promise一样，都可以用来异步编程。

2.Generator函数和普通函数的区别：

(1)普通函数：一旦执行，就会从头走到尾，不会终止。


function normalFn（）{
    console.log('start')
    console.log('middle')
    console.log('end')
}
normalFn()

(2)Generator函数

[1]Generator不是一个函数，定义generator时，使]]></description><category></category></item><item><title><![CDATA[JS中Promise的实现（结合实例）以及执行顺序]]></title><link>https://blog.youkuaiyun.com/weixin_44015821/article/details/106120523</link><guid>https://blog.youkuaiyun.com/weixin_44015821/article/details/106120523</guid><author>weixin_44015821</author><pubDate>Thu, 14 May 2020 15:51:02 +0800</pubDate><description><![CDATA[1.Promise是异步编程的一种解决方案，比传统的解决方案——回调函数和时间更加合理且强大。

2.特点：

(1)对象的状态不受外界影响（3种状态）

[1]Pending状态（进行中）

[2]Fulfilled状态（已成功）

[3]Rejected状态（已失败）

(2)一旦状态改变就不会再变（两种状态的改变：成功、失败）

[1]Pending——&gt;Fulfilled

[2]Pend——&gt;Rejected

(3)可以把Promise看成一个状态机，初始是Pending状态，可以通]]></description><category></category></item><item><title><![CDATA[对JS中的继承的理解(通过构造函数绑定法，prototype模式法绑定，Object.create（）以及ES6中的extends]]></title><link>https://blog.youkuaiyun.com/weixin_44015821/article/details/106017933</link><guid>https://blog.youkuaiyun.com/weixin_44015821/article/details/106017933</guid><author>weixin_44015821</author><pubDate>Sat, 09 May 2020 16:48:43 +0800</pubDate><description><![CDATA[1.在ES5中，可以使用以下方式解决继承问题。
(1)第一种叫构造函数绑定：
这种构造方法，只能继承父构造器中的属性，不能继承父构造器原型上的属性。
function  Animal (){
	this.species = 'animal';
}
function Cat(name,color){
	Animal.apply(this,arguments);
	this.name = name;
	this.color = color;
}
var cat = new Cat("damao","black"]]></description><category></category></item><item><title><![CDATA[对JS中的防抖（debounce）和节流（throttling）的一些理解（结合实例）]]></title><link>https://blog.youkuaiyun.com/weixin_44015821/article/details/105936224</link><guid>https://blog.youkuaiyun.com/weixin_44015821/article/details/105936224</guid><author>weixin_44015821</author><pubDate>Tue, 05 May 2020 18:41:51 +0800</pubDate><description><![CDATA[1.防抖（debounce）:遇到延时函数的定时器，就重新计时
(1)策略：
当事件被触发时，设定一个周期延时执行动作，若周期又被触发，则重新设定周期，直到周期结束，执行动作。
在后期有拓展了前缘防抖函数，即执行动作在前，设定延迟周期在后，周期内有事件被触发，不执行动作，且周期重新设定。
(2)特点：
[1]当事件快速连续不断触发时，动作只会执行一次。
[2]延迟debounce，是在周期结束时执...]]></description><category></category></item><item><title><![CDATA[对JS中模块化的一些理解（CommonJS、AMD、ES6的模块化）]]></title><link>https://blog.youkuaiyun.com/weixin_44015821/article/details/105890858</link><guid>https://blog.youkuaiyun.com/weixin_44015821/article/details/105890858</guid><author>weixin_44015821</author><pubDate>Sat, 02 May 2020 15:58:41 +0800</pubDate><description><![CDATA[JS本身是不支持模块化的，只不过后来社区的一些大佬制定了一个模块化规范，主要分为两种：
第一种：用于服务器端的CommonJS，比如node.js中的require。
第二种：客户端的AMD，比如require.js。
后来ES6提供了模块化的方案，分为导出（export）、导入（import）两个模块。
1.首先介绍一下CommonJS（同步、服务端）
(1)Node应用由模块组成，采用Comm...]]></description><category></category></item><item><title><![CDATA[对JS中深拷贝、浅拷贝的一些理解以及深拷贝常用的一些方法]]></title><link>https://blog.youkuaiyun.com/weixin_44015821/article/details/105878033</link><guid>https://blog.youkuaiyun.com/weixin_44015821/article/details/105878033</guid><author>weixin_44015821</author><pubDate>Fri, 01 May 2020 16:01:44 +0800</pubDate><description><![CDATA[1.首先我们先区分一下什么是深拷贝、什么是浅拷贝？
假设B复制了A，当修改A时，看B是否发生了变化，若B也跟着变了，那么就说明这是浅拷贝；若B没变，则说明是深拷贝。
2.通过阐述堆栈、基本数据与引用数据来理解深拷贝和浅拷贝。
(1)基本数据类型和引用数据类型的数据存储是不一样的
(2)基本数据类型——名、值都存储在栈内存中。
let a = 1;

当b复制a时，即b = a;栈内存会开辟一个内存...]]></description><category></category></item><item><title><![CDATA[对JS中的闭包（块级作用域）的一些理解（为什么有时候for循环遍历会出现错误）]]></title><link>https://blog.youkuaiyun.com/weixin_44015821/article/details/105876818</link><guid>https://blog.youkuaiyun.com/weixin_44015821/article/details/105876818</guid><author>weixin_44015821</author><pubDate>Fri, 01 May 2020 13:00:48 +0800</pubDate><description><![CDATA[1.什么是闭包？
函数对其周围状态（语法环境）的引用捆绑在一起构成了闭包。也就是说，闭包可以让你从内部函数访问外部函数。在JS中，每个函数被创建时，都会在函数生成时形成闭包。
2.语法作用域：
function init(){
	var name = '每天脱发也不能秃头';  /name是一个被init创建的局部变量
	function displayName(){  //displayName...]]></description><category></category></item><item><title><![CDATA[对JS中执行上下文的一些理解（结合实例更好理解）]]></title><link>https://blog.youkuaiyun.com/weixin_44015821/article/details/105849511</link><guid>https://blog.youkuaiyun.com/weixin_44015821/article/details/105849511</guid><author>weixin_44015821</author><pubDate>Thu, 30 Apr 2020 12:05:39 +0800</pubDate><description><![CDATA[1.什么是执行上下文？
当前JavaScript代码被解析和执行时所在环境的抽象概念。JS中运行的任何代码都是在执行上下文中运行的。
2.执行上下文的类型有3种，分别为：
(1)全局执行上下文：这是最基础的默认的执行上下文。不在任何函数中的代码都位于全局执行上下文中。它做了两件事情：
[1].创建了一个全局对象，在浏览器中的全局对象为window对象。
[2].将this指针指向这个全局对象。
注...]]></description><category></category></item><item><title><![CDATA[JS中的this(通过几个例子可以加深理解)]]></title><link>https://blog.youkuaiyun.com/weixin_44015821/article/details/105805793</link><guid>https://blog.youkuaiyun.com/weixin_44015821/article/details/105805793</guid><author>weixin_44015821</author><pubDate>Tue, 28 Apr 2020 09:57:32 +0800</pubDate><description><![CDATA[1.首先说一下this指向的规则：
this的指向在函数的定义时是确定不了的，只有函数执行时才能确定this到底指向谁，实际上 this最终的指向是那个调用它执行它的那个对象。
2.下面通过几个例子加深理解一下
例子1：
function a（）{
	var user = “每天脱发也不能秃”;
	console.log(this.user);  //undefined
	console.log(...]]></description><category></category></item><item><title><![CDATA[对JS中操作符的一些理解：[]= =![] =>true,{}= =!{}=>false]]></title><link>https://blog.youkuaiyun.com/weixin_44015821/article/details/105786258</link><guid>https://blog.youkuaiyun.com/weixin_44015821/article/details/105786258</guid><author>weixin_44015821</author><pubDate>Mon, 27 Apr 2020 11:49:22 +0800</pubDate><description><![CDATA[首先通过一个典型的例题来加深对上面方法的理解：[]= =![] =&gt;true,{}= =!{}=&gt;false.
1.根据运算符优先级，！的优先级大于= =，所以先计算！[]，！将变量转换为布尔类型。注意：null,undefined,NaN,空字符串(’’)取反为true，其余都为false。以此！[] = false。
2.根据上面的规则，如果有一个操作数为布尔，在比较相等性之前转...]]></description><category></category></item><item><title><![CDATA[对JS中new操作符的一些理解（如何自己实现一个new函数）]]></title><link>https://blog.youkuaiyun.com/weixin_44015821/article/details/105783172</link><guid>https://blog.youkuaiyun.com/weixin_44015821/article/details/105783172</guid><author>weixin_44015821</author><pubDate>Mon, 27 Apr 2020 11:01:20 +0800</pubDate><description><![CDATA[new操作符用于创建一个给定的构造函数的对象实例，举个例子：

	function Person(name,age){
		this.name = name;
		this.age = age;
	}
	const person1 = new Person('Tom',20);
	console.log(person1);  //Person{name:"Tom",age:20}



new关...]]></description><category></category></item><item><title><![CDATA[JS前端模块化]]></title><link>https://blog.youkuaiyun.com/weixin_44015821/article/details/103027045</link><guid>https://blog.youkuaiyun.com/weixin_44015821/article/details/103027045</guid><author>weixin_44015821</author><pubDate>Tue, 12 Nov 2019 14:43:43 +0800</pubDate><description><![CDATA[在网页开发早期，JavaScript制作作为一种脚本语言，做一些简单的表单验证或动画实现，那个时候的代码还是很少的，之江将代码写在script标签里面即可。随之Ajax异步请求的出现，慢慢就形成了前后端分离，客户端需要做的事情越来越多，代码量也是与日俱增，为了应对代码量的剧增，我们通常会将代码写在多个js文件中，进行维护，但是这种维护方式，依然不能避免一灾难性的问题，比如全局变量同名问题。而且利用...]]></description><category></category></item><item><title><![CDATA[Vue组件-插槽]]></title><link>https://blog.youkuaiyun.com/weixin_44015821/article/details/103015657</link><guid>https://blog.youkuaiyun.com/weixin_44015821/article/details/103015657</guid><author>weixin_44015821</author><pubDate>Mon, 11 Nov 2019 20:31:56 +0800</pubDate><description><![CDATA[在生活中，很多地方都有插槽，电脑的USB、电源插槽等，插槽的目的是为了让我们原来的设备具备 更多的扩展性。组件的插槽是为了让我们封装的组件更加具有扩展性，让使用者可以决定组件内部的一些东西到底展示什么。比如，移动网站中的导航栏。在移动开发中，几乎每个页面都有导航栏，这种导航栏我们必然会封装成一个插槽，比如nav-bar组件，一旦有了这个组件，我们就可以在多个页面中复用了。
那么如何封装这类组件呢：...]]></description><category></category></item><item><title><![CDATA[父子组件之间的通信（二）]]></title><link>https://blog.youkuaiyun.com/weixin_44015821/article/details/102998712</link><guid>https://blog.youkuaiyun.com/weixin_44015821/article/details/102998712</guid><author>weixin_44015821</author><pubDate>Sun, 10 Nov 2019 18:27:02 +0800</pubDate><description><![CDATA[上一篇主要使用props属性和emit事件进行父子组件之间的通信，但是这种方法有局限性，父子组件之间通信的内容只能是data，不能整个对象进行传递通信，那么我们子组件怎么调用父组件中的方法呢？
子组件如何调用父组件对象，有两种方式：
1.使用$children，但是该方法有一定的局限性，一般不推荐使用。下面通过代码演示如何调用父组件对象。
&lt;!DOCTYPE html&gt;
&lt;htm...]]></description><category></category></item><item><title><![CDATA[Vue中父子组件通信的小案例]]></title><link>https://blog.youkuaiyun.com/weixin_44015821/article/details/102993408</link><guid>https://blog.youkuaiyun.com/weixin_44015821/article/details/102993408</guid><author>weixin_44015821</author><pubDate>Sat, 09 Nov 2019 23:43:45 +0800</pubDate><description><![CDATA[Vue中父子组件通信的小案例
由于父子组件中的data是独立的，所以不能相互直接通信，但是在一些开发中，一些数据往往是需要从上级传递到下层的，比如
在一个页面中，我们从服务器请求到了很多数据，其中一部分并非是我们整个页面的大组件展示的，而是需要我们小组件展示，这时，并不会让子组件再次发送一个请求，而是让大组件直接传递给小组件。
那么如何进行父子组件之间的通信呢？
1.父组件向子组件传递消息：通过p...]]></description><category></category></item></channel></rss>