Converting 9 digit number into a string

1 view (last 30 days)
I have a (1675x 1) number matrix. Each numbers are 9 digit number. I want convert this no into string. When I am giving the num2str command it is giving me (1675 x 9) matrix, but I want to get a (1675 x 1) matrix. How can I do that?
  3 Comments
Sadia
Sadia on 6 Apr 2017
Edited: Walter Roberson on 6 Apr 2017
I wanted to run the following code:
T = array2table (raw (2:end,[2,1,4,17,18]));
T.Properties.VariableNames = {'Station' 'Date' 'PM' 'Lat' 'Long'};
T2 = unstack(T, 'PM', 'Date', 'GroupingVariables', 'Station')
Then it is showing the following error
Error using tabular/unstack (line 212)
Unable to group rows using unique values of the table variable 'Station'. UNIQUE returned an error.
Error in PM25 (line 20)
T2 = unstack(T, 'PM', 'Date', 'GroupingVariables', 'Station')
Caused by:
Error using cell/unique (line 85)
Input A must be a cell array of character vectors.
That's why I wanted to convert this station from number to char. But my station values are 9 digit numbers and it is not giving me one character for one station.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 5 Apr 2017
If you have R2016b or later, you can use compose()
Result = compose('%d', YourMatrix);
Otherwise you have to use a cell array if you want individual entries. For example,
Result = cellstr( int2str(YourMatrix) );
  2 Comments
Walter Roberson
Walter Roberson on 6 Apr 2017
You should be using cell2table() rather than array2table() so that you can combine values of different types.

Sign in to comment.

More Answers (0)

Categories

Find more on Data Type Conversion in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!