我成功解决了我遇到的问题,并正在寻找有关外部for循环结构的建议。我的内循环正常工作。我希望每次迭代使用不同的高度(h值)重复11次计算6次。在J循环的迭代中,h增加到它的原始值+ 2 * h。 K循环中的POI取决于h并且已定义但为了可读性而被省略。如有必要,可以使用完整脚本进行更新。 POI的定义应该在嵌套循环中吗?
h = 0.5985;
GroundDistance = 18.75;
SouthAngle = 57;
TreeHeight = 14;
POI = TreeHeight-h;
BuildingElevationAng = atand(POI/GroundDistance);
a=0.265;
TreeLengthRHS = 15.89+a;
h = 0.5985;
X(1,1)=h;
for k = 2:6;
X(k) = X(k-1) + (X(1)*2);
end
for J = 1:6
h=h+(2*h);
for K = 1:11
TreeLengthTest(K) = TreeLengthRHS + (2*(K-1)*a);
TreeLengthLHS = 75 - TreeLengthTest(K);
AngleBx(K) = atand(TreeLengthLHS/GroundDistance);
AngleCx(K) = atand(TreeLengthTest(K)/GroundDistance); %wasTreeLengthRHS
DistanceAx(K) = GroundDistance/cosd(SouthAngle);
DistanceBx(K) = GroundDistance/cosd(AngleBx(K));
DistanceCx(K) = GroundDistance/cosd(AngleCx(K));
AltAngleA(K) = atand(POI/DistanceAx(K));
AltAngleB(K) = atand(POI/DistanceBx(K));
AltAngleC(K) = atand(POI/DistanceCx(K));
AzimuthA = 0;
AzimuthB = (-AngleBx)-SouthAngle;
AzimuthC = AngleCx-SouthAngle;
end
end
非常感谢任何帮助。
答案 0 :(得分:1)
嗯,有一些我不确定的事情,但我会给出答案,看看这是否有帮助。 POI的定义不必在内循环内,因为POI对于这11个计算中的每一个都是常量。但是,我认为您定义h
有点不正确,因为您永远不会使用最初定义的h
值。由于您已经拥有X
向量,如果您尝试嵌套for循环,例如:
for J = 1:6
POI = TreeHeight - X(J);
for K = 1:11
...All your code here...
end
end