How to add the recent value of a variable to the end of the name of another variable as a suffix?
2 次查看(过去 30 天)
显示 更早的评论
I wrote a program in which there are 1000 rounds, and in some rounds under especial circumstances we need to generate a new variable. For example a zeros (2,2). But I need to generate each of these new variables like that:
If my especial circumstances satisfy the program for the first time, the program has to name my new variable: OMICRON_1
If my especial circumstances satisfy it for the second time the program has to name my new variable: OMICRON_2
And so on.
Thus in such way I can recognize how many times my especial circumstances have been satisfied and I can have all of that matrices in my work space. In other words I need to add the current value of a variable like “n” as a suffix to the end of the name of my new variable and for the next time if my especial circumstances satisfy we will have
n=n+1;
1 个评论
采纳的回答
Stephen23
2015-4-20
编辑:Stephen23
2019-6-25
2 个评论
Stephen23
2015-4-20
Nice work! You might also be interested in using a non-scalar structure, which would be even simpler to use!. For each index n you simply do this:
omicron(n).data = ...
It is a very convenient way to store data, and lets you do neat things like putting all of the field-values into a cell array like this:
{omicron.data}
(read that link to know more, and also about <http://www.mathworks.com/help/matlab/matlab_prog/comma-separated-lists.html comma-separated lists).
更多回答(1 个)
pfb
2015-4-20
I think this can be done through the function "eval".
However, your strategy seems impractical. Why don't you add a dimension? That is, use a "tensor"?
OMICRON(:,:,j);
If you have an idea of the max number of matrices you can possibly generate (N), you can preallocate that
OMICRON=zeros(2,2,N);
and fill as above
2 个评论
pfb
2015-4-20
if you do not know the dimension in advance you can keep adding new matrices at the "bottom" of the tensor.
Preallocating helps with memory management, and in general it is a good practice. But sometimes one simply has no idea, and does not preallocate.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!