I get error when I try to plot sigmoid function
3 次查看(过去 30 天)
显示 更早的评论
I try to plot equation with sigmoid function, but i get error
M1(1)=0;
t(1)=0;
h=0.01;
dt=-30:h:30;
t=zeros(length(dt),1);
M1=zeros(length(dt),1);
for i= 1:length(t)
t(i+1)=t(i)+dt;
M1(i+1)=M1(i)+1./(1+exp(-dt));
end
plot(t,M1);
0 个评论
采纳的回答
Star Strider
2023-5-9
Subscript ‘dt’. However the loop is not necessary and does not appear to plot the desired function —
M1(1)=0;
t(1)=0;
h=0.01;
dt=-30:h:30;
t=zeros(length(dt),1);
M1=zeros(length(dt),1);
for i= 1:length(t)
t(i+1)=t(i)+dt(i);
M1(i+1)=M1(i)+1./(1+exp(-dt(i)));
end
plot(t,M1);
Mv = 1./(1+exp(-dt));
figure
plot(dt,Mv)
The second plot may be what you want.
.
0 个评论
更多回答(2 个)
Sam Chak
2023-5-9
A pure sigmoidal logistic function looks like this
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1379074/image.png)
x = linspace(-10, 10, 20001);
S = 1./(1 + exp(-x));
figure(1)
plot(x, S), grid on
title('Sigmoidal Logistic function')
xlabel('x')
But yours looks like the ReLU-like (rectified linear unit) activation function due to the Iterative addition of M1(i). Can you clarify the type of sigmoid function that you are looking for?
M1(1) = 0;
t(1) = 0;
h = 0.01;
dt = -30:h:30;
t = zeros(length(dt), 1);
M1 = zeros(length(dt), 1);
for i= 1:length(t)
t(i+1) = t(i) + dt(i);
M1(i+1) = M1(i) + 1./(1+exp(-dt(i)));
end
figure(2)
plot(dt, M1(2:end)), grid on
title('ReLU-like function')
xlabel('dt')
3 个评论
Walter Roberson
2023-5-9
dt=-30:h:30;
dt is a vector
t(i+1)=t(i)+dt;
t(i) is a scalar. Add the complete vector dt and you will get a vector. But you cannot store a vector in the scalar location t(i+1)
4 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!