如何使用一个for循环的名字一个矩阵?
27日视图(30天)
显示旧的评论
在我的每个迭代循环,产生一个矩阵。我想名字,矩阵基于迭代的数量。这是我迄今为止:
为试验= 1:max_trials
一个= int2str(试验);
一个= output_matrix;
然而,Matlab商店最后一个矩阵变量a下生产。我怎么能让它存储每个矩阵在其各自的迭代?例如,如果max_trials = 3,我怎么得到三个独立的矩阵标记“1”,“2”和“3”?
谢谢你!
接受的答案
Stephen23
2015年3月27日
编辑:Stephen23
2015年3月30日
出=细胞(1、max_trials);
为审判= 1:max_trials
{审判}=…你的计算
结束
避免创建在MATLAB动态命名变量。这是可怜的实践已经解释很多次在这个论坛上,并通过MATLAB不推荐自己:
当你是一个初学者看来像一个狡猾、快捷的方法来存储信息,但实际上它是
非常糟糕的
实践名称动态变量。MATLAB也不是用于这种类型的变量命名:如果你继续包括数据的变量名,那么你会发现自己对MATLAB更多的战斗。
然而当你使用更合适的存储你的数据(元数据),那么你就会突然发现大量的MATLAB函数为你做许多有用的操作,快速和容易。
在你的情况中一个更健壮的解决方案是使用
细胞数组
或
结构
,在那里你可以包括为每个类型的数据字段(如流程类型,流数据,温度数据,指出,单位,等等)。有许多功能,支持在结构和细胞阵列,可以轻松地访问这些数据,他万博1manbetx们也可以使用
矢量化
代码(这是你需要了解)。是的,你甚至可以定义的结构
动态字段名
。
放置你的数据结构或单元阵列也使得它更容易传递给函数:你能想象的战斗你会试图通过数以百计的动态指定变量的函数?
如果你感兴趣的话,这里有一些页解释为什么动态分配变量名在MATLAB是一个非常糟糕的主意: