Creating variables consisting of many elements

12 views (last 30 days)
I want to create a variable consisting of X1 to X10 . Is there an easy way instead of typing X1 to X10?
V1={'X1','X2','X3','X4','X5','X6','X7','X8','X9','X10'}
Thanks
  3 Comments
Stephen23
Stephen23 on 4 Aug 2017
Edited: Stephen23 on 4 Aug 2017
@Gratitude Kim: what do you need these string for? The best solution may well depend on your usecase.
>> arrayfun(@(n)sprintf('X%d',n),1:10,'uni',0)
ans =
'X1'
'X2'
'X3'
'X4'
'X5'
'X6'
'X7'
'X8'
'X9'
'X10'
or perhaps
>> regexp(sprintf('X%d ',1:10),'\S+','match')
If you are planning on accessing variables with those names then DON'T. Read this to know why:

Sign in to comment.

Answers (3)

Daniel Burke
Daniel Burke on 4 Aug 2017
From your question it looks like you want V1 to be a cell array of strings, ranging from 'X1' to 'X10', this code should do the trick if that is your goal:
V1 = cell(1,10)
for i = 1:10
V1{i} = ['X' num2str(i)]
end

Jan
Jan on 4 Aug 2017
Or the undocumented function sprintfc:
sprintfc('X%d', 1:10)

Philip Borghesani
Philip Borghesani on 4 Aug 2017
If you don't mind strings and have R2017a I like:
"x"+(1:10)
Or if you want a cell array or have 2016b:
cellstr(string('x')+(1:10))

Categories

Find more on Characters and Strings 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!