logarithmically spaced vector in a certain range

How to create a logarithmically spaced vector say from values 3 to 10? Thank you!

 采纳的回答

pas=0.1
t=log(3):pas:log(10)
out=exp(t)
%or
n=10 % number of samples
out=exp(linspace(log(3),log(10),n))

5 个评论

Thanks, but isn't this an exponential curve?
In other words, how would you then create an exponentially spaced vector? Thanks in advance.
n=10 % number of samples
out=log(linspace(exp(3),exp(10),n))

请先登录,再进行评论。

更多回答(2 个)

Like Marco, I would suggest using logspace. For example,
logspace(1,3,10)
creates a vector of 10 logarithmically spaced values between 10^1 and 10^3. If you instead want the bounds to be determined by a value and not the exponent, I generally use the following:
logspace(log10(3),log10(10),10)
This will create a vector of 10 logarithmically spaced values between 3 and 10.

1 个评论

Thank Nathan, but what if I have a, b values equals to 0, 0.97, for example?
I mean, the logspaced vector is full of NaN, because of the negative logarithm...
thanks in advance

请先登录,再进行评论。

To my knwoledge you could just use the built-in command logspace.

类别

帮助中心File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by