如何使用一个for循环的名字一个矩阵?

27日视图(30天)
马太福音
马太福音 2015年3月27日
评论道: Asghar Molaei2021年5月15日
在我的每个迭代循环,产生一个矩阵。我想名字,矩阵基于迭代的数量。这是我迄今为止:
试验= 1:max_trials
一个= int2str(试验);
一个= output_matrix;
然而,Matlab商店最后一个矩阵变量a下生产。我怎么能让它存储每个矩阵在其各自的迭代?例如,如果max_trials = 3,我怎么得到三个独立的矩阵标记“1”,“2”和“3”?
谢谢你!
1评论
Asghar Molaei
Asghar Molaei 2021年5月15日
非常感谢你提出这个问题。这是我的问题。

登录置评。

接受的答案

Stephen23
Stephen23 2015年3月27日
编辑:Stephen23 2015年3月30日
使用一个 单元阵列 是这样的:
出=细胞(1、max_trials);
审判= 1:max_trials
{审判}=你的计算
结束
避免创建在MATLAB动态命名变量。这是可怜的实践已经解释很多次在这个论坛上,并通过MATLAB不推荐自己:
当你是一个初学者看来像一个狡猾、快捷的方法来存储信息,但实际上它是 非常糟糕的 实践名称动态变量。MATLAB也不是用于这种类型的变量命名:如果你继续包括数据的变量名,那么你会发现自己对MATLAB更多的战斗。
然而当你使用更合适的存储你的数据(元数据),那么你就会突然发现大量的MATLAB函数为你做许多有用的操作,快速和容易。
在你的情况中一个更健壮的解决方案是使用 细胞数组 结构 ,在那里你可以包括为每个类型的数据字段(如流程类型,流数据,温度数据,指出,单位,等等)。有许多功能,支持在结构和细胞阵列,可以轻松地访问这些数据,他万博1manbetx们也可以使用 矢量化 代码(这是你需要了解)。是的,你甚至可以定义的结构 动态字段名
放置你的数据结构或单元阵列也使得它更容易传递给函数:你能想象的战斗你会试图通过数以百计的动态指定变量的函数?
如果你有一个新版本的matlab还可以使用 将数据存储在一个数组,但也允许密钥名访问的列。这对你的数据可能是一个不错的选择。
如果你感兴趣的话,这里有一些页解释为什么动态分配变量名在MATLAB是一个非常糟糕的主意:
1评论
Asghar Molaei
Asghar Molaei 2021年5月15日
你的建议是非常有用的。谢谢你!

登录置评。

答案(1)

大卫年轻
大卫年轻 2015年3月27日
一种方法是使用单元阵列,像这样
试验= 1:max_trials
<计算结果,分配一个>
output_matrix{试验}=一个;
结束
然后 output_matrix {k} 的价值吗 一个 矩阵迭代 k
不要试图将每次迭代的结果分配给一个不同的变量通过构造不同的名字在循环——这是一个非常糟糕的办法。
1评论
大卫年轻
大卫年轻 2015年3月27日
…斯蒂芬·Cobeldick更详细地解释了他的答案。

登录置评。

类别

找到更多的在变量帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!