MATLAB can't create a vector -10e-6:10e-6 of a certain length. Anyone knows how to do it?
1 view (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 C Code Generation 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!