如何在MATLAB中实现此代码片段的矢量化版本?

时间:2017-01-26 11:05:22

标签: arrays matlab matrix vectorization

我是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可以是矩阵,标量甚至是矢量。 谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

g = zeros(size(z));

g = 1 ./ (1+exp(-z));

关键是在操作之前使用点.,这使得它在元素方面。 因此,每个元素都使用其他矩阵中的相应元素进行操作,而不是使用矩阵运算。

参见文档:

https://uk.mathworks.com/help/matlab/matlab_prog/array-vs-matrix-operations.html