Change variable name in a loop

130 ビュー (過去 30 日間)
Yoshihiro
Yoshihiro 2012 年 6 月 4 日
編集済み: Stephen23 2022 年 11 月 23 日
Hi,
I have a problem with naming a variable during a for loop. I want to change the variable name in each iteration, so I use eval function for naming like this
dataset=rand(3);
for i=1:N
eval(['NAME_' num2str(i) '=dataset']);
end
But with eval function I always have out put on command window. Does anyone knows better solution for naming or not to show the output of eval function?
Thanks,
  2 件のコメント
Stephen23
Stephen23 2018 年 6 月 28 日
編集済み: Stephen23 2018 年 6 月 28 日
JAMES WAITE
JAMES WAITE 2019 年 4 月 11 日
@Stephen Brimhall: found your resource helpfull for my issue. Thanks!

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

採用された回答

Walter Roberson
Walter Roberson 2012 年 6 月 4 日
  2 件のコメント
Joseph Cheng
Joseph Cheng 2014 年 9 月 4 日
編集済み: Joseph Cheng 2014 年 9 月 4 日
In addition to Walter's post you could go:
dataset=rand(3);
for i=1:N
Name{i} =dataset;
end
Which is equivalent to your Name_# variable. Instead of working with Name_# you would type Name{#} instead. Note the {} bracket type as these are cells. Using cells also give the ability to have different sizes of dataset. Also with the Name{#} convention you do not have to hard code or use eval again to reprocess the data. For instance if there needs to be a scaling of all the data in Name you would have to hard code Name_1*2, Name_2*2, etc. you could write a for loop to do it and without using eval.
Byron Uzoka
Byron Uzoka 2020 年 7 月 11 日

🤔

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

その他の回答 (1 件)

Sirshendu Mondal
Sirshendu Mondal 2020 年 5 月 4 日
Instead of
eval(['NAME_' num2str(i) '=dataset']);
use
eval(['NAME_' num2str(i) '=dataset;']);
  5 件のコメント
David Valentine
David Valentine 2022 年 11 月 22 日
Thank you so much for this anwer(and the querier for that matter)! I'm working on a project that needed something like this, and all I could find was people saying to make either a structure or double array.
Stephen23
Stephen23 2022 年 11 月 23 日
編集済み: Stephen23 2022 年 11 月 23 日
"...all I could find was people saying to make either a structure or double array."
You can't have done very much reading on this topic if that was "all" the advice you found.
The advice given on this forum is much more nuanced and situation specific:

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

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by