如何在每次循环迭代中“归零”所有变量

时间:2014-01-08 10:16:15

标签: matlab initialization zero

我在matlab中写了一个描述动态生物过程的脚本;输入为每日温度值的一年。该模型在此每日时间步上运行一年,执行该过程所需的不同计算。

我有三十年的温度数据(矩阵大小为365 * 30),我打算在脚本开头写一个'for循环',以便连续使用每年的每日数据。我有大约5个变量是脚本的输出,我打算在每次迭代时输出到txt / csv文件。我的问题是模型中有大约80个变量,我想在最外层循环(温度输入)的每次迭代中将它们全部归零。我想以有效的方式做到这一点,而不是必须单独归零所有变量。有谁知道怎么做?

我一直在寻找使用'who'函数列出所有变量,我认为它可以用某种方式将零点归零。我试过让x = who;这似乎产生了引号中所有变量的列表。但显然;试图让x = 0之后再重新定义x。我还在考虑使用'clear all',但我认为这会让模型慢下来,因为它会'从头开始'重新定义每个循环中的所有变量? 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

首先,如果你有80个变量,你可能会做一些奇怪的事情。例如,考虑将它们组合成向量或数组。

话虽如此,我可以考虑两种情况:

  1. 您已经在某处初始化了所有变量
  2. 在这种情况下,解决方案很简单:将初始化移动到外循环的开头。

    1. 你没有初始化任何东西(不好的做法,特别是如果你担心表现)
    2. 在这种情况下,你应该在循环中放置一个函数,它只返回你的输出变量而不是所有这些松散的中间变量。

      也许这两种方法的组合也适用,但实际上我建议不要使用80种不同的变量!并初始化您需要使用的任何变量。

      初始化标量的紧凑语法是:

      [a, b,c]  = deal(0);