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进入向量,我需要它是一个数字。
答案 0 :(得分:0)
您已检查过第一个输入,看它是标量,因此可能意味着另一个输入y
不是方阵。如果你检查y
也是什么,你可能会看到出了什么问题。
如果没有,matlab是否有一个函数可以告诉你matlab认为对象是什么类型的?在a
和y
上运行该帐户。或者是额外的迂腐,在1+a
上运行。这应该可以解决问题。