在MATLAB中,我执行如下操作:
z = diag(c)*D*x;
idxN = z<0; idxP = z>=0; % logical indexing
y1 = sum(-z(idxN))+sum(arrayfun(@(x) log(exp(x)+1),z(idxN)));
我正试图建立一个Python模型:
z = np.diagflat(c).dot(D).dot(x)
idxN = z<0, idxP = z>=0
y1 = np.sum(-z[idxN])+np.sum(math.log(np.exp(x)+1),z[idxN]);
上面的代码片段不工作,因为我猜我必须矢量化某个地方?你知道吗
谢谢你的意见。你知道吗
arrayfun
是MATLAB中循环的单行包装器。在Python中,可以这样做:相关问题 更多 >
编程相关推荐