Matlab对Python的操作



我在将此操作从MatLab转换为Python:时遇到问题

xup(1:ncomp,1)=aa(1+k:ncomp+k).';

"aa";是1x1000个元素的矢量。

"ncomp"=128

"k〃;是循环循环的变量。

问题是。。。我不明白它是怎么工作的。

我发布了算法的整个部分:

while(testnorm>0.0001 && epoca<maxit)
k=0;
xup=[];

while(k<=npatt)   
xup(1:ncomp,1)=aa(1+k:ncomp+k).';
if (funz==1)
gy=tanh(alpha.*xup.'*w);
else
gy=sign(xup.'*w).*log(1+abs(alpha*xup.'*w));
end

w=w+lr.*(xup*gy-w*triu((xup.'*w).'*gy));
w = w / norm(w);

k=k+1;
end
[...]
end

你能帮忙吗?

这个本质上是什么

xup(1:ncomp,1)=aa(1+k:ncomp+k).';

线路正在运行;它从向量aa中获取数据,从索引1+k开始到ncomp+k索引(即ncomp总元素(,并将这些元素转座(从单行到ncomp行(。现在,这些转置的数据作为ncomp行插入到xup中,其中每行都有一个元素。类似的python代码是

import numpy as np
aa = np.array([i for i in range(1000)])
ncomp = 128
k = 0
xup = [[0] for i in range(ncomp)]
while(k<10):
data = (np.transpose(aa[k:ncomp+k]))
for i in range(ncomp):
xup[i] = data[i]
k += 1

print(xup[:128])

最新更新