# Semilogx function giving a linear scale

5 views (last 30 days)
Vedant Kudalkar on 26 Apr 2022
Commented: Vedant Kudalkar on 26 Apr 2022
I am trying to make a semilog function of my data, by setting the x data, and producing the y data based on an equation. The code below is what I currently have.
S = [10^-2 10^-1 1 10 100 1000 10^4]; % Remdesivir concentration, in uM
Km = 0.5; % Equilibrium constant, in uM
Vmax = 0.82; % max reaction velocity, in
Vobs = zeros(1,length(S)); % preallocates a vector for the observed velocity.
% itterates throught each potential value of Vobs, produces an array of
% values for Vobs to graph
for i = 1:length(S)
Vobs(i) = (Vmax*S(i))/(S(i) + Km); % calculates Vobs from Vmax, Km, and the S concentration at a specified concentration
end
% Maintains all drawings
hold on
semilogx(S,Vobs)
xlabel ('Remdesivir concentration (uM)');
ylabel('Vobs (uM)');
title('Vobs vs Remdesivir concentration (uM)- ' )
What am I doing wrong?

VBBV on 26 Apr 2022
S = [1e-2 1e-1 1 10 100 1000 1e4]; % Remdesivir concentration, in uM
Km = 0.5; % Equilibrium constant, in uM
Vmax = 0.82; % max reaction velocity, in
Vobs = zeros(1,length(S)); % preallocates a vector for the observed velocity.
% itterates throught each potential value of Vobs, produces an array of
% values for Vobs to graph
for i = 1:length(S)
Vobs(i) = (Vmax*S(i)/(S(i) + Km)); % calculates Vobs from Vmax, Km, and the S concentration at a specified concentration
end
% Maintains all drawings
semilogx(S,Vobs)
xlabel ('Remdesivir concentration (uM)');
ylabel('Vobs (uM)');
title('Vobs vs Remdesivir concentration (uM)- ' )
grid
VBBV on 26 Apr 2022
Delete hold on line . It produces a figure window with linear scale.

Rifat on 26 Apr 2022
Hi Vedant,
You're very close. I would use the following sequence. Just to be sure, you should define the 'XScale' as a 'log' axis.
hfig = figure;
ax1 = axes('XScale','log','YScale','linear','Parent',hfig);
hold(ax1,'on');
tr1 = semilogx(S,Vobs,'Parent',ax1);
Vedant Kudalkar on 26 Apr 2022
This works as well, thank you so much!