2009-11-13 2 views
1

Как вы читаете следующие коды 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 
+0

Вы, кажется, путаясь с Lua нотацией. –

ответ

18

В вашем втором случае p,d=eig(A)MATLAB является просто печать ранее вычисленное значение р из корпуса 1, а затем выполнив команду d=eig(A).

Перед запуском случай 2 попробовать

Если затем запустить p,d=eig(A) он возвращает ошибку, говоря, что р не определена функция или переменная.

От 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() 
Смежные вопросы