How can use a for loop to name a matrix?

After each iteration of my for loop, a matrix is produced. I want to name that matrix based on the number of the iteration. This is what I have so far:
for trials = 1:max_trials
a = int2str(trials);
a = output_matrix;
However, Matlab just stores the last matrix produced under the variable 'a'. How can I get it to store each matrix under its respective iteration? For example, if max_trials = 3, how would I get three separate matrices labelled '1', '2' and '3'?
Thank you!

1 件のコメント

Asghar Molaei
Asghar Molaei 2021 年 5 月 15 日
Thank you very much for asking this question. It was my question too.

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

 採用された回答

Stephen23
Stephen23 2015 年 3 月 27 日
編集済み: Stephen23 2023 年 9 月 12 日

5 投票

Use a cell array like this:
out = cell(1,max_trials);
for trial = 1:max_trials
out{trial} = ... your calculation here
end
Avoid creating dynamically named variables:

1 件のコメント

Asghar Molaei
Asghar Molaei 2021 年 5 月 15 日
Your tips were very helpful. Thank you

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

その他の回答 (1 件)

David Young
David Young 2015 年 3 月 27 日

0 投票

One way is to use a cell array, like this
for trials = 1:max_trials
< compute result, assign to a >
output_matrix{trials} = a;
end
Then output_matrix{k} is the value of the a matrix for iteration k.
Don't try to assign the result of each iteration to a different variable by constructing different names inside the loop - it's a very bad way to do it.

1 件のコメント

David Young
David Young 2015 年 3 月 27 日
... as Stephen Cobeldick explains in more detail in his answer.

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

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

質問済み:

2015 年 3 月 27 日

編集済み:

2023 年 9 月 12 日

Community Treasure Hunt

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

Start Hunting!

Translated by