Разница между матричными обозначениями MATLAB
Как вы читаете следующие коды MATLAB?
# 1
K>> [p,d]=eig(A) // Not sure about the syntax.
p =
0.5257 -0.8507
-0.8507 -0.5257
d = // Why do you get a matrix?
0.3820 0
0 2.6180
# 2
K>> p,d=eig(A) // Not sure about the syntax.
p =
0.5257 -0.8507
-0.8507 -0.5257
d = // Why do you get a vector?
0.3820
2.6180
где
A =
2 1
1 1
2 ответа
Решение
В вашем втором случае p,d=eig(A)
MATLAB просто печатает ранее вычисленное значение p из случая 1 и затем запускает команду d=eig(A)
,
Перед запуском дела 2 попробуйте
>> clear p d
Если вы тогда бежите p,d=eig(A)
он вернет ошибку, говорящую, что p - неопределенная функция или переменная.
От help eig
:
E = EIG(X) is a vector containing the eigenvalues of a square
matrix X.
[V,D] = EIG(X) produces a diagonal matrix D of eigenvalues and a
full matrix V whose columns are the corresponding eigenvectors so
that X*V = V*D.
Заметки нет V,D = EIG(X)
вариант. Функции MATLAB, которые возвращают более одного значения, сгруппируют их, используя формат:
[ ] = function()