【发布时间】:2016-09-03 12:02:16
【问题描述】:
我目前正在对冰盖动力学进行建模。我有一个循环计算 8760 小时(1:tmax)和 8 个不同位置(1:no_stations)的表面能量平衡。如下所示:
tau=0.5;
albedo=0.35;
c0=-90;
c1=10;
for i=1:tmax
for e=1:no_stations
psi(i,e) = tau*(1-albedo)*insol(i,4)+c0+c1*temp_stations(i,e);
end
end
温度数据 (temp_stations) 是一个 8760x8 数组,其中 8 个位置对应 8760 小时的温度,而 insol(i,4) 是一个 8760x4 数组,其中第四列给出了日照随时间的演变.我的问题:我想创建一个额外的维度,一个 8760x8x61 数组,其中 c0 不是常数,而是在 -140 和 -80 之间变化:
c0=-140:1:-80;
我该怎么做?我尝试了一些方法,但似乎效果不佳。
谢谢!
【问题讨论】:
-
MATLAB 中的所有索引值都必须是
>= 1。您必须将数组的第三维范围从 1 到 61 并减去 141。才能获得c的正确值。
标签: matlab loops multidimensional-array