Как можно взять экспоненту матрицы в MATLAB? - PullRequest
0 голосов
/ 01 марта 2012

У меня есть код MATLAB, который я должен преобразовать в язык Си.Согласно коду 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() также создает матрицу 1xn1 (я не уверен в этом, разобрался с этим из руководства),Насколько я понимаю, сложение двух матриц 1x3 не даст скаляра.

Каким образом здесь берется экспонента?Может ли экспонента применяться к матрице?

Ответы [ 2 ]

4 голосов
/ 01 марта 2012

Как и многие функции MATLAB, функция exp работает поэлементно при применении к массивам.Для получения более подробной информации, пожалуйста, обратитесь к документации .

0 голосов
/ 01 марта 2012

Да, вы можете применить экспоненту к матрице.Из статьи в Википедии: Экспоненциальная матрица

Пусть X - n × n вещественная или комплексная матрица.Экспонента X, обозначенная как e X или exp (X), представляет собой матрицу n × n, заданную степенным рядом

e^X = Sum(k=0, infinity) 1/k! * X^k 

Как указывал @Джон ВарфоломейЭто не то, что делает exp() из Matlab.

...