2017-01-26 10 views
0

Я новичок в MATLAB, и, следовательно, трудно перейти от реализации Matrix Matrix к реализации MATLAB, поэтому для нижеприведенного фрагмента кода, какова была бы векторная реализация 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

Посмотрите https://mathworks.com/help/matlab/ref/meshgrid.html особенно 'вычисляем выражение $ х^2 + у^2 $ над 2-D сеткой. Пример. – Lanting

+1

'g = 1 ./ (1 + exp (-z));'. Это так просто. – buzjwa

ответ

2
g = zeros(size(z)); 

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

Ключ использует точку . перед операцией, что делает его поэлементно. Таким образом, каждый элемент работает с соответствующим элементом в других матрицах, в отличие от используемых матричных операций.

См Docs:

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

+0

Спасибо, сэр! Понял! –