Matlab 无法对向量值使用运算符^

Matlab 无法对向量值使用运算符^,matlab,vector,Matlab,Vector,这是我的代码,问题是y不能做(1+a)^y运算,因为它说它是一个向量,但它只是一个向量值r(i,1)。当我在命令行中调用它时,它打印一个as 0.03,然后显示这个错误 function[df] = getDiscountFactor(t,T,r,i) y=getYearFraction(t,T); a=r(i,1) df=1/((1+a)^y); end 如果我使用。^运算符,问题就解决了,但是df进入一个向量,我需要它是一个数字。您已经检查了第一个输入,以确定它是一个标量,因此这可能意味着

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

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

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

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


如果没有,matlab是否有一个函数可以告诉你matlab认为一个对象是什么类型的?在
a
y
上运行该命令。或者,为了更迂腐,在
1+a
上运行它。这应该会把事情弄清楚。

或者在你的问题上写一个答案并将其标记为已接受,或者接受下面写的答案,或者删除你的问题。
a =

    0.0300

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