Как я могу построить этот выход функции Octave \ Matlab? - PullRequest
0 голосов
/ 12 мая 2019

Я все, я довольно новичок в Octave \ MatLab, и у меня есть следующие сомнения.У меня есть этот код, вычисляющий сигмовидную функцию для параметра z:

function g = sigmoid(z)
%SIGMOID Compute sigmoid function
%   g = SIGMOID(z) computes the sigmoid of z.

% You need to return the following variables correctly 
g = zeros(size(z));

% ====================== YOUR CODE HERE ======================
% Instructions: Compute the sigmoid of each value of z (z can be a matrix,
%               vector or scalar).

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

% =============================================================

end

z может быть скаляр, вектор или матрица.

Например, сделать что-то вроде этого:

>> X = [1 2; 0 5]
X =

   1   2
   0   5

>> g = 1 ./ (1 + exp(-X));
>> g
g =

   0.73106   0.88080
   0.50000   0.99331

Учитывая, что матрица X имеет 2 элемента X1 и X2 (столбец 2), как я могу построить эту функцию?На выходе получается трехмерная функция?

1 Ответ

0 голосов
/ 12 мая 2019

Выход не является 3D-функцией, потому что у вас есть один вход X и один выход g, это 2D.

Вы можете отобразить его столбец за столбцом , отображая каждый столбец как отдельную функцию на том же графике:

plot(X, g)

, что эквивалентно:

figure
hold on
for i = 1:size(X,2)
    plot(X(:,i), g(:,i))
end
hold off

Вы можете отобразить его строка за строкой , отображая каждую строку как отдельную функцию на том же графике:

plot(X', g')

, что эквивалентно:

figure
hold on
for i = 1:size(X,1)
    plot(X(i,:), g(i,:))
end
hold off

Вы можете отобразить его в виде массива :

plot(X(:), g(:))
...