Create logarithmically spaced vector with points spaced more closely at far end of vector

Is it possible to use logspace (or some other approach) to create a logrithmically spaced vector where the points are more closely spaced at the far end of the vector? For example, for the vector x = logspace(1, 2, 100), I would like to have the points spaced more closely toward the 10^2 = 100 end of the vector. I can't be the first person to want to do this...Thanks in advance for anyone's help!

 Accepted Answer

Like this?
% Normal log-spaced vector
x1 = logspace(1, 2, 10);
% Create inverse log space
delta = diff(x1);
delta = fliplr(delta);
% Inversely log-spaced vector
x2 = [10, 10+cumsum(delta)];
% Check!
figure
plot(x1, 'o')
hold on
plot(x2, 'v')
legend({'x1', 'x2'}, 'Location', 'best')

3 Comments

Dear Akira:
Thanks for your reply. However this is not what I have in mind. Rather I would like to create a vector with exponentially increasing values, but where the spacing between the values decreases as the values increase. There must be a way to map the vector generated with logspace onto such a modified vector, but I'm not smart enough to figure out how to do it...
Kind regards, Eric
Thank you for your comment. Unfortunately, it's not clear for me what the expected result looks like. Could you give us a small example?
Actually, your solution worked fine for what I needed. Many thanks!

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Products

Release

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!