MATLAB can't create a vector -10e-6:10e-6 of a certain length. Anyone knows how to do it?
8 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
David Goodmanson
2018 年 7 月 31 日
編集済み: David Goodmanson
2018 年 7 月 31 日
Hi Neelima,
type 'help linspace' and take a look at that function
KALYAN ACHARJYA
2018 年 7 月 31 日
編集済み: KALYAN ACHARJYA
2018 年 7 月 31 日
You can use linespace function to the required vector length.
vector=linespace(initial_vale,last_value,length_required)
回答 (1 件)
Guillaume
2018 年 7 月 31 日
編集済み: Guillaume
2018 年 7 月 31 日
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)
参考
カテゴリ
Help Center および File Exchange で C Code Generation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!