How can I create a string vector?

53 次查看(过去 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.

采纳的回答

Jan
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
Walter Roberson 2015-12-27
Actually the padding is with blanks when you use char() on a cell array of strings.
Jan
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
Azzi Abdelmalek 2015-12-27
You can use cell arrays, for example:
planet={'planet1' 'planet2' 'planet3' 'planet4'}
vector=[2,4,3]
our=planet(vector)

类别

Help CenterFile Exchange 中查找有关 Data Type Conversion 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by