我在matlab中写了一个描述动态生物过程的脚本;输入为每日温度值的一年。该模型在此每日时间步上运行一年,执行该过程所需的不同计算。
我有三十年的温度数据(矩阵大小为365 * 30),我打算在脚本开头写一个'for循环',以便连续使用每年的每日数据。我有大约5个变量是脚本的输出,我打算在每次迭代时输出到txt / csv文件。我的问题是模型中有大约80个变量,我想在最外层循环(温度输入)的每次迭代中将它们全部归零。我想以有效的方式做到这一点,而不是必须单独归零所有变量。有谁知道怎么做?
我一直在寻找使用'who'函数列出所有变量,我认为它可以用某种方式将零点归零。我试过让x = who;这似乎产生了引号中所有变量的列表。但显然;试图让x = 0之后再重新定义x。我还在考虑使用'clear all',但我认为这会让模型慢下来,因为它会'从头开始'重新定义每个循环中的所有变量? 任何帮助将不胜感激。
答案 0 :(得分:1)
首先,如果你有80个变量,你可能会做一些奇怪的事情。例如,考虑将它们组合成向量或数组。
话虽如此,我可以考虑两种情况:
在这种情况下,解决方案很简单:将初始化移动到外循环的开头。
在这种情况下,你应该在循环中放置一个函数,它只返回你的输出变量而不是所有这些松散的中间变量。
也许这两种方法的组合也适用,但实际上我建议不要使用80种不同的变量!并初始化您需要使用的任何变量。
初始化标量的紧凑语法是:
[a, b,c] = deal(0);