how to concatenate string and number

Hello ,
I want to concatenate string and number in for loop
requestID = Req_Check;
for k = 1 : 10
requestID = requestID +1;
end
I am expecting requestID after for loop like Req_Check_1, Req_Check_2 ...Req_Check_10
How can I do this?

1 Comment

use "strcat" such that in each iteration convert number to string by "num2str" and eventually strcat(s1,s2). s1 your str and s2 your number(converted to string)

Sign in to comment.

 Accepted Answer

Two (of perhaps many) possibilities:
requestIDs = 'Req_Check';
for k = 1 : 10
requestID(k,:) = [requestIDs '_' num2str(k,'%02d')]; % Character Array
end
requestIDs = 'Req_Check';
for k = 1 : 10
requestID{k} = [requestIDs '_' num2str(k,'%d')]; % Cell Array
end
The first creates a character array and produces a two-digit number filed so all are of equal length. The second uses a cell array, so the lengths don’t have to be equal.

4 Comments

Thank you Star and Stephen..
Using sprintf rather than string concatenation is often clearer and faster:
str = 'Req_Check';
for k = 10:-1:1
out{k} = sprintf('%s_%d',str,k);
end
OR
for k = 10:-1:1
out{k} = sprintf('Req_Check'_%d',k);
end
Thanks again for explanation, then I prefer sprintf here. and I want to find the number from string 'Req_Check_10'. I am using regexp like below:
[D,S]=regexp('Req_Check_10','([0-9])','match')
but its giving me indiviual numbers like 1,0.
Could you please help me on this?
[D,S] = regexp('Req_Check_10','\d+','match','split')

Sign in to comment.

More Answers (2)

cesar silva
cesar silva on 18 Nov 2019
People like to make all complicated...
Concatenate 2 words
a='hi';
b='you'
c=[a b]
Concatenate word + number
a = num2str(2)
b = 'you'
c = [b a] or... if you want... c = [b '_' a]
will give you: you2 or you_2
SIMPLICITY IS SO SEXY...

3 Comments

If you think that's simple or intuitive, you're going to freak out when you discver another programming language..
I'm agree with you, this one helped me out easy and fast... as a sofware engineer I hate when my programmers want to make simple things as if they were very elaborated, wasting resources. Thanks
It doesn't give me a single string. It gives me 2 strings for c=[b a] and 3 strings for c=[b '_' a].

Sign in to comment.

requestID = "Req_Check"
requestIDs = requestID + "_" + (1:10)'
Please see the documentation for strings for more information.

Products

Community Treasure Hunt

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

Start Hunting!