MATLAB can't create a vector -10e-6:10e-6 of a certain length. Anyone knows how to do it?
7 views (last 30 days)
Show older comments
Suppose, h = 10e-6 and l = 125e-6.
I want to create two vectors of the same length, say 51. The first vector goes from -h to h, and the second vector goes from -l to l.
MATLAB computes -10e-6:10e-6 as just -10e-6, which I think is because I am dealing with very small numbers here. How can I fix this? If instead I also specify the step size -10e-6:2e-6:10e-6, then it works fine.
Thank you!
2 Comments
David Goodmanson
on 31 Jul 2018
Edited: David Goodmanson
on 31 Jul 2018
Hi Neelima,
type 'help linspace' and take a look at that function
KALYAN ACHARJYA
on 31 Jul 2018
Edited: KALYAN ACHARJYA
on 31 Jul 2018
You can use linespace function to the required vector length.
vector=linespace(initial_vale,last_value,length_required)
Answers (1)
Guillaume
on 31 Jul 2018
Edited: Guillaume
on 31 Jul 2018
This is very basic matlab here.
a:b
generates numbers from a to b in step of 1, so it generates [a, a+1, a+2, ..., a+n] with a+n <= b. So yes, -10e-6:10e-6 only generates -10e-6 since -10e-6 + 1 is greater than 10e-6.
a:k:b
generates numbers from a to b in step of k, so it generates [a, a+1*k, a+2*k, ..., a+n*k], with a+n*k <= b. So you could use for example -10e-6:10e-6:10e-6 to generate 21 numbers.
linspace(a, b, n)
generates exactly n numbers by spreading them evenly between a and b, including them. This is probably what you want here, since it sounds like you want exactly 51 numbers
linspace(-10e-6, 10e-6, 51)
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!