Matlab-每15个时间步读取一个变量,并将该变量的值设置为以下15个时间步读取的值
我正在使用Matlab,但在多次迭代中尝试为变量指定某个值时遇到了一个问题 主时间步长设置为60秒,但是,我需要从外部程序读取变量温度。每15分钟进行一次,不可能每60秒读取一次以匹配模拟时间步长 在读入下一个值之前,是否仍需将读入的值分配给温度变量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
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.)您的标题很长且不具体。您可以将其缩短为,例如:仅在每一步更改循环内的变量。