How to access and change variables in workspace without knowing their names?

1 次查看(过去 30 天)
Hi everybody
I would like to access and make changes to variables in workspace without knowing their names. I would like to call them one bye one and apply some changes into each variable. I might be able to use "whos" function to know names, but I do not know how to make changes. For example:
List = whos;
As known, List(1).name represents name of the first variable in the list. How can we change the elements of that variable. Do "evalin" or "assignin" work? How?
Thanks
  2 个评论
per isakson
per isakson 2016-6-13
编辑:per isakson 2016-6-13
If you are familiar with all the reasons why not using eval you could do something like
eval( [list(1).name,' = 17;'] )
Stephen23
Stephen23 2016-6-13
编辑:Stephen23 2016-6-13
@per isakson: why assume that every beginner knows why this is a bad idea and should be avoided? Oftentimes they think that using dynamic variable names is a great idea!

请先登录,再进行评论。

回答(1 个)

Stephen23
Stephen23 2016-6-13
编辑:Stephen23 2021-6-28
Do NOT do this
This would actually be horribly slow, pointlessly complex, obfuscated, and very buggy way to write your code. You would make your code hard to debug, and a pain to work with. Read this to know why:
Using indexing would be simple, neat, and very efficient. You should use one array and indexing. Indexing is the solution you should be using, because it is the most efficient way to write MATLAB code, is simple, neat, and very easy to debug. Indexing is explained quite well in the MATLAB introductory tutorials, which are highly recommended for all beginners:

类别

Help CenterFile Exchange 中查找有关 Whos 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by