我在将此操作从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])