How can I create a string vector?
57 次查看(过去 30 天)
显示 更早的评论
Given a vector containing a certain number of elements, for example vector=[2,4,3], I have to create a vector containing in each row (or column) the name of the corresponding planet in the solar system. In the case of the previous vector, the result should be PlanetName=['Venus';'Mars';'Earth']. Can you suggest me a method to create such a vector? thank you.
0 个评论
采纳的回答
Jan
2015-12-27
编辑:Jan
2015-12-27
There are no "string vectors" in Matlab, but you need a "cell string":
Planets = {'Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune'}
Index = [2, 4, 3];
Chosen = Planets(Index)
See the "Getting Started" chapters of the documentation, because such a powerful tool as Matlab demands for learning the basics from the documentation.
EDITED: And when you really have a good reason not to use a cell string, but a char-matrix:
Chosen = char(Planets(Index))
Now the strings are padded with zeros. But it is less useful to work with char matrices. Prefer cell strings whenever it is possible.
5 个评论
Walter Roberson
2015-12-27
Actually the padding is with blanks when you use char() on a cell array of strings.
Jan
2015-12-29
@Walter: I still try to ignore, that Matlab pads CHAR matrices with blanks, because zeros are less intrusive.
更多回答(1 个)
Azzi Abdelmalek
2015-12-27
You can use cell arrays, for example:
planet={'planet1' 'planet2' 'planet3' 'planet4'}
vector=[2,4,3]
our=planet(vector)
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!