不能在向量值上使用operator ^

时间:2015-04-25 20:39:13

标签: matlab vector

function[df] = getDiscountFactor(t,T,r,i)
y=getYearFraction(t,T);
a=r(i,1)
df=1/((1+a)^y);
end

这是我的代码,事实是y不能做(1 + a)^ y操作,因为它说它是一个向量,但它只是一个向量值r(i,1)。当我在命令行中调用它时,它打印一个0.03然后它显示此错误

a =

    0.0300

Error using  ^ 
Inputs must be a scalar and a square
matrix.
To compute elementwise POWER, use
POWER (.^) instead.

如果我使用。^运算符问题已解决,但df进入向量,我需要它是一个数字。

1 个答案:

答案 0 :(得分:0)

您已检查过第一个输入,看它是标量,因此可能意味着另一个输入y不是方阵。如果你检查y也是什么,你可能会看到出了什么问题。

如果没有,matlab是否有一个函数可以告诉你matlab认为对象是什么类型的?在ay上运行该帐户。或者是额外的迂腐,在1+a上运行。这应该可以解决问题。