我有一个存储值的for循环。出于某种原因,它正在计算所有数字的值,包括for循环中的数字,而不仅仅是数组中的数值。
$(".typeahead").tagsinput({
typeaheadjs: {
source: engine.ttAdapter()
}
});
我得到的错误是“请求2000000x3385数组超出最大数组大小首选项”。我希望for循环只计算Cm值而不是每个数字。
答案 0 :(得分:1)
在内部循环中,T
是函数T_ILS
的输出,每次使用相同的参数。
for i = 1:length(t)
T = T_ILS(x,y,ro,Cm,t);
Tall(Cm,:) = [T];
end
我不知道这个函数计算什么,但你可能想要这样做
for i = 1:length(t)
T = T_ILS(x,y,ro,Cm,t(i));
Tall(Cm,:) = [T];
end
考虑向量t
的每个值,甚至更好:
for t = 3600:50:172800
T = T_ILS(x,y,ro,Cm,t);
Tall(Cm,:) = [T];
end
编辑:另外,为了完成这个答案,我想将@ MadPhysicist的答案合并到我的答案中。结果将是
Cm = 1E6:1E6:4E6; x = 0.1;y = 0; ro = 0.1;
T = zeros(1,length(t));
for i = 1:length(Cm)
for t = 3600:50:172800;
T = T_ILS(x,y,ro,Cm(i),t);
Tall(i,:) = [T];
end
end
答案 1 :(得分:1)
你不是在计算它们之间的每个值,但你的指数搞砸了。 var
获取数百万的值,但您可以使用它来索引Cm
。你可能想要
Tall(Cm,:)
请注意,main函数调用分配给t = 3600:50:172800;x = 0.1;y = 0; ro = 0.1;
T = zeros(1,length(t));
Cm = 1E6:1E6:4E6;
for j = 1:length(Cm)
for i = 1:length(t)
T(i) = T_ILS(x,y,ro,Cm(j),t(i));
end
Tall(j,:) = [T];
end
并在函数参数中使用T(i)
来证明t(i)
循环的存在。