matlab - Matlab For Cycle,选择以递增数字命名的变量
问题描述
我有许多包含我必须以相同方式详细说明的数据的向量,它们以这种方式命名:“data1”,“data2”ecc ...我想用for循环自动化这个过程,怎么能我使用索引迭代地“选择”变量?例如,我阐述的第一行是“x = data1”之类的赋值,我希望第二个循环执行“x = data2”等等。先感谢您
解决方案
您可以使用strcat
和的组合num2str
来创建变量的名称
i = 1;
name = strcat("data",int2str(i));
因此,将它放在一个 for 循环中,更新i
将不断更改名称。接下来您可以使用eval
来评估名称
x = eval(name);
总共
for i = 1:n
name = strcat("data",int2str(i));
x = eval(name);
end
注 1:以这种方式创建变量名通常被认为是不好的做法。将所有变量保存在同一个数组中会更好。正如 Luis Mendo 在评论中所链接的那样。
注 2:它通常被认为是一个 for 循环,而不是一个 for 循环:D
推荐阅读
- c# - 我们可以从后面的代码绑定组合框 WPF 吗?
- css - 将布局样式应用于站点上不同位置的样式组件和 React 组件的最佳方法是什么?
- java - 具有已知界限的 Java Stream 最小值
- twitter-bootstrap - Bootstrap 4 JS选项卡不重定向
- ios - iOS 和 WatchOS 上的红蜘蛛 - Cocoapods
- c# - 如何让我的重置按钮多次工作?
- google-chrome - 在不使用完整路径的情况下在 chrome 中打开文件
- asp.net-core - ASP.NET core 2.2:属性路由问题
- javascript - 文本文件行数据未在节点 js 中拆分
- java - Java 是否保证当前同步的对象不会被垃圾回收?