函数中基本算术的问题(Matlab)

时间:2013-10-14 10:32:53

标签: matlab function arithmetic-expressions

我在matlab中定义了一个非常基本的函数。它不需要输入并返回10个浮点数的数组。 我遇到的问题是,当我运行函数返回数组时,我希望得到不正确的值,但是当我替换一个值并简单地从函数中打印出值时,我得到了正确的答案?! 我发布了以下代码中的示例:

% Calculate the terms in our expression
FirstTerm  = sin(Alpha)*(atan(x+d)-atan(x-d));
SecondTerm = cos(Alpha)*0.5*log(((x+d).^2+h.^2)/((x-d).^2+h.^2));

% Combine and return result
Result = 2 * (FirstTerm - SecondTerm)

FirstTermTemp  = sin(Alpha)*(atan(-8+d)-atan(-8-d));
SecondTermTemp = cos(Alpha)*0.5*log(((-8+d).^2+h.^2)/((-8-d).^2+h.^2));
ResultTemp = 2 * (FirstTermTemp - SecondTermTemp)

我想要计算的数组从-8开始,因此结果应该匹配。有谁知道他们为什么不这样做? 干杯 千斤顶

1 个答案:

答案 0 :(得分:1)

您已在.

之前离开/
% //Calculate the terms in our expression
FirstTerm  = sin(Alpha)*(atan(x+d)-atan(x-d));
SecondTerm = cos(Alpha)*0.5*log(((x+d).^2+h.^2)./((x-d).^2+h.^2));
% //Combine and return result
Result = 2 * (FirstTerm - SecondTerm)

Result =

 Columns 1 through 7:

   0.097944   0.133866   0.208270   0.425797   0.692904  -0.140347  -0.124798

 Columns 8 and 9:

  -0.095581  -0.076166