Creating variables consisting of many elements

5 ビュー (過去 30 日間)
Gratitude Kim
Gratitude Kim 2017 年 8 月 4 日
コメント済み: Andrei Bobrov 2017 年 8 月 4 日
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 件のコメント
Stephen23
Stephen23 2017 年 8 月 4 日
編集済み: Stephen23 2017 年 8 月 4 日
@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:
Gratitude Kim
Gratitude Kim 2017 年 8 月 4 日
Thanks for your assistance.

サインインしてコメントする。

回答 (3 件)

Daniel Burke
Daniel Burke 2017 年 8 月 4 日
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 2017 年 8 月 4 日
Or the undocumented function sprintfc:
sprintfc('X%d', 1:10)

Philip Borghesani
Philip Borghesani 2017 年 8 月 4 日
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))

カテゴリ

Help Center および File ExchangeWhos についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by