Matlab-每15个时间步读取一个变量,并将该变量的值设置为以下15个时间步读取的值

Matlab-每15个时间步读取一个变量,并将该变量的值设置为以下15个时间步读取的值,matlab,variables,time,Matlab,Variables,Time,我正在使用Matlab,但在多次迭代中尝试为变量指定某个值时遇到了一个问题 主时间步长设置为60秒,但是,我需要从外部程序读取变量温度。每15分钟进行一次,不可能每60秒读取一次以匹配模拟时间步长 在读入下一个值之前,是否仍需将读入的值分配给温度变量15个时间步 我的工作思路是: for ii = 2:M-1 temperature(2) = 20; . . . temperature(14) = 20; for ii = 15:15:M-1 temperat

我正在使用Matlab,但在多次迭代中尝试为变量指定某个值时遇到了一个问题

主时间步长设置为60秒,但是,我需要从外部程序读取变量温度。每15分钟进行一次,不可能每60秒读取一次以匹配模拟时间步长

在读入下一个值之前,是否仍需将读入的值分配给温度变量15个时间步

我的工作思路是:

for ii = 2:M-1

  temperature(2) = 20;
  .
  .
  .
  temperature(14) = 20;

  for ii = 15:15:M-1
    temperature(ii) = (read in value)
  end

  Main Code(which uses the temperature value)

end

嘿,这个解决方案应该有效。我不知道你的“真实”程序在做什么,所以它还是一种抽象。如果您有任何问题,请随时发表评论

l=0; %variable for your Temperature (here Temperature1)
for k=2:1:600
    if mod(k-2,15)==0 %using k-2 because your loop starts with 2. You could also use k if you predefine tmp_Temperature as Temperature1(1)
        l=l+1;
        tmp_Temperature = Temperature1(l);
    end
    Here is your code with tmp_Temperature beeing your Temperature

end

你的方法很好。如果要快速复制某些数据一定次数,请查看
repmat
函数。使用
mod
函数很容易解决此问题。如果mod(ii-2,15)==0,只需使用
,而不是第二个循环。这应该可以很好地工作(不确定-2,因为我没有检查你的代码,只是问了个问题),我建议编辑你的帖子:1。)标记不正确,因为你的循环步骤beeing时间无关紧要。您没有使用特定于时间的分析。2.)您的代码应标记为代码(标记整个代码,然后按ctrl+k。3.)您的标题很长且不具体。您可以将其缩短为,例如:
仅在每一步更改循环内的变量。