我是MATLAB的新手,因此很难从C风格的Matrix实现过渡到MATLAB的实现,所以对于下面的代码片段,矢量化的MATLAB实现会是什么?
g = zeros(size(z));
for i=1:size(z)(1),
for j=1:size(z)(2),
g(i,j)= 1/ (1+exp(-z(i,j)));
end;
end;
z可以是矩阵,标量甚至是矢量。 谢谢你的帮助!
答案 0 :(得分:2)
g = zeros(size(z));
g = 1 ./ (1+exp(-z));
关键是在操作之前使用点.
,这使得它在元素方面。
因此,每个元素都使用其他矩阵中的相应元素进行操作,而不是使用矩阵运算。
参见文档:
https://uk.mathworks.com/help/matlab/matlab_prog/array-vs-matrix-operations.html