2015-01-02 59 views
-1

自定義模型讓我們考慮以下Simulink模型定義在Simulink

enter image description here

我有以下矩陣

A=[2 1 3;1 4 5] 

A = 

    2  1  3 
    1  4  5 

,並在自定義的MATLAB函數的奇異值分解

>> [U E V]=svd(A) 

U = 

    -0.4719 -0.8817 
    -0.8817 0.4719 


E = 

    7.2965   0   0 
     0 1.6617   0 


V = 

    -0.2502 -0.7772 -0.5774 
    -0.5480 0.6053 -0.5774 
    -0.7982 -0.1720 0.5774 

>> 

從此鏈接採取

http://www.mathworks.com/help/simulink/slref/matlabfunction.html

我已經創建了自己的功能

function [U,E,V]=singular_decomposition(A) 
%#codegen 
[U E V]=svd(A); 

數值和矩陣的尺寸相同,但在某些方面有不同的簽名,我怎麼能解決這個問題?

回答

2

沒有什麼錯。矩陣的SVD分解通常不是唯一的。

如果執行U*E*V',則在兩種情況下都會得到相同的A值。

+0

@datodatuashvili是的,您可以從控制檯命令以及simulink顯示中檢查'U * E * V''的結果,兩者都必須評估爲'A' – P0W

+0

關於唯一性,我發現以下鏈接http:// www4 .ncsu.edu /〜ipsen/REU09/chapter4.pdf –

+0

@datodatuashvili **備註4.2 ** _「奇異值是唯一的,但奇異向量矩陣不是。」_請不要把數學拋在我身上,我很窮,如果不滿意,可以在math.stackexchange.com上發佈。恕我直言其實施定義 – P0W