MatLab对Python语言的运算

lx0bsm1f  于 2022-11-15  发布在  Matlab
关注(0)|答案(1)|浏览(170)

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

你能帮忙吗?

am46iovg

am46iovg1#

从本质上讲,这是什么

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

Line是这样做的;它从向量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])

相关问题