MATLAB Answers

Locks
0

convert number to string but keep it the same as it is

Asked by Locks
on 19 Sep 2014
Latest activity Commented on by Star Strider
on 20 Sep 2014
Hi,
I have a Matrix containing different time series and I gave them numbers (2000001, 2000002,2000003 etc.) and I would like to convert this numbers into a string. If I use int2Str I get some Kind of matlab representation of this number, but this is not what I am looking for. What I need is at the end a vector as follows:
A=['2000001','2000002','2000003', etc.]
how can I achieve this by a automatic command?
regards

  0 Comments

Sign in to comment.

3 Answers

Answer by Star Strider
on 19 Sep 2014
 Accepted Answer

In one line:
M = [2000001, 2000002,2000003];
S = strsplit(num2str(M));
produces:
S =
'2000001' '2000002' '2000003'

  4 Comments

Show 1 older comment
I didn’t see the semicolons that indicated you want them as a column vector of strings.
This works:
M = [2000001, 2000002, 2000003];
S = strsplit(num2str(M))'
and produces:
S =
'2000001'
'2000002'
'2000003'
If ‘M’ was initially either a row vector or a column vector, this works:
M = [2000001, 2000002, 2000003]';
S = strsplit(num2str(M(:)'))'
producing the same column vector as before.
Either num2str or int2str will work in this application.
strsplit (and strjoin) were introduced in version 2013a, if I recall.
I don’t remember when it arrived.
In its absence, this is as good as it gets:
S = cellstr(int2str(M(:)))
and produces:
S =
'2000001'
'2000002'
'2000003'

Sign in to comment.


Answer by Youssef Khmou
on 19 Sep 2014
Edited by Youssef Khmou
on 19 Sep 2014

You can achieve that command using transformation from matrix to cells, if M is your matrix :
M=magic(10);
N=size(M);
B=mat2cell(num2str(M(:)),ones(N(1)*N(2),1));
B=reshape(B,N(1),N(2));

  0 Comments

Sign in to comment.


Answer by Mikhail on 19 Sep 2014

You can convert each number separetely in the for loop.
for i=1:numel(M)
out(:,i)=int2Str(M(i))
end
And you will have out - array of strings Code may have some errors - i didn't try to compile it

  1 Comment

tis results in
222
000
000
000
000
000
123
but that is exactly what I whant to avoid

Sign in to comment.