为什么表达式的值没有以数字格式显示?

问题描述

我有一个表达式(信号),我想使用循环获得某些结果。 原配方

enter image description here

代码

Ak=1.2;
fk=0.0123;
jK=0.321;
alphaK=-0.01;
T=1;

#Signal
#xi=1.2*cos(0,0123*2*pi*(i-1)+0.321)*eps(–0.01*i);

for i=1:4
  x(i)=Ak*cos(fk*2*pi*(i-1)+jK)*eps(alphaK*i);
end

结果采用这种格式

x = 1.9753e-18
x = 1.9753e-18   3.8375e-18
x = 1.9753e-18   3.8375e-18   3.7013e-18
x = 1.9753e-18   3.8375e-18   3.7013e-18   7.0863e-18

但正确的结果是这样的:

enter image description here

如何更改格式以获得正确的显示

解决方法

替换

x(i)=Ak*cos(fk*2*pi*(i-1)+jK)*eps(alphaK*i);

x(i)=Ak*cos(fk*2*pi*(i-1)+jK)*exp(alphaK*i);

你会得到一个非常接近预期的结果

x =

   1.12737   1.08417   1.03531   0.98119

eps 不是指数函数

octave:3> eps
ans =    2.2204e-16
octave:4> eps(x)
ans =

   2.2204e-16   2.2204e-16   2.2204e-16   1.1102e-16
octave:5> exp(x)
ans =

   3.0875   2.9570   2.8160   2.6676