为什么这个matlab功能不分?

时间:2012-02-01 22:37:03

标签: matlab division

以下函数返回mu的值,该值始终等于“result”而不是除法的结果。为什么我错过了分工才能正常工作?

 for k = 0:10
     result = func1(.95,k);
     plusone = func1(.95,(k+1));
     fprintf('plusone = %f  result = %f\n', plusone, result);
     mu = double(plusone)/double(result);
     fprintf('mu = %f\n', mu);
 end

如果有帮助,func的代码是:

 function result = func1(c, k)

 exp = 2^k;

 result = c^exp;

1 个答案:

答案 0 :(得分:5)

没有错误。 mu应始终等于result,因为

plusone = c^(2^(k+1)) 
        = c^(2*(2^k))
        = (c^(2^k))^2
        = result^2

result^2/result = result