C 如何在MATLAB中获取矩阵的指数?

C 如何在MATLAB中获取矩阵的指数?,c,matlab,math,porting,C,Matlab,Math,Porting,我有一个MATLAB代码,我必须转换成C语言。根据MATLAB代码 n1 = 11; x1 = randn(2,n1) + repmat([-1 1]’,1,n1); w = [0 0]’; 根据我的计算,这里的输出 w’*x1 将是一个1x3矩阵,据我所知,这是一个行向量 那么下面代码的输出是什么 z = exp(repmat(b,1,n1)+w’*x1); 其中,repmat()。我的理解是,两个1x3矩阵相加不会得到标量 这里的指数是怎么取的?指数可以应用于矩阵吗?是的,可以将指数

我有一个MATLAB代码,我必须转换成C语言。根据MATLAB代码

n1 = 11; x1 = randn(2,n1) + repmat([-1 1]’,1,n1);
w = [0 0]’; 
根据我的计算,这里的输出

w’*x1
将是一个1x3矩阵,据我所知,这是一个行向量

那么下面代码的输出是什么

z = exp(repmat(b,1,n1)+w’*x1);
其中,
repmat()。我的理解是,两个1x3矩阵相加不会得到标量


这里的指数是怎么取的?指数可以应用于矩阵吗?

是的,可以将指数应用于矩阵。维基百科文章:

设X为n×n实矩阵或复矩阵。X的指数,用eX或exp(X)表示,是由幂级数给出的n×n矩阵


正如@John Bartholomew所指出的,这不是Matlab的
exp()
所做的

是的,可以对矩阵应用指数。维基百科文章:

设X为n×n实矩阵或复矩阵。X的指数,用eX或exp(X)表示,是由幂级数给出的n×n矩阵



正如@John Bartholomew所指出的,这不是Matlab的
exp()
所做的

与许多MATLAB函数一样,
exp
函数在应用于阵列时按元素操作。有关更多详细信息,请参阅。

与许多MATLAB函数一样,
exp
函数在应用于阵列时按元素操作。有关更多详细信息,请参阅。

您可以将e提升为平方矩阵的幂。但那是数学,我不懂Matlab。你能把repmat(b,1,n1)+w'*x1的结果贴出来吗。在八度音程中它不起作用。第一项是4x11,第二项是1x11Thnx,用于输入。那么e的值提升到一个矩阵是多少?另一个矩阵还是一个单一的标量值?这并不是完全不可能的。事实上很有可能。@user1031962-这完全取决于你如何定义它。在matlab中,exp(A),其中A是一个数组,用于计算元素指数。还有计算矩阵指数的expm,你可以把e提高到平方矩阵的幂。但那是数学,我不懂Matlab。你能把repmat(b,1,n1)+w'*x1的结果贴出来吗。在八度音程中它不起作用。第一项是4x11,第二项是1x11Thnx,用于输入。那么e的值提升到一个矩阵是多少?另一个矩阵还是一个单一的标量值?这并不是完全不可能的。事实上很有可能。@user1031962-这完全取决于你如何定义它。在matlab中,exp(A),其中A是一个数组,用于计算元素指数。还有计算矩阵指数的expm。虽然这是真的,但它不是MATLAB
exp
函数所做的(MATLAB确实有一个计算矩阵指数的函数,但它被称为
expm
,可能是因为它不如标量
exp
)有用,而这是真的,这不是MATLAB
exp
函数所做的(MATLAB确实有一个计算矩阵指数的函数,但它被称为
expm
,大概是因为它不如标量
exp
有用),所以根据我的代码,z将是一个指数值数组。?是的。转换为C时,需要将其转换为一个循环,该循环为输入矩阵的每个元素调用exp()。因此,根据我的代码,z将是一个指数值数组。?是的。转换为C时,需要将其转换为一个循环,该循环为输入矩阵的每个元素调用exp()。
e^X = Sum(k=0, infinity) 1/k! * X^k