2012-03-13 175 views
1

我正在研究Matlab,我需要定義一個依賴於幾個變量的矩陣函數。Matlab |幾個變量的矩陣函數

例如,我有這樣的載體:

t=[1,2,3,4,5,6,7,8,9,10] 
y=[1,2,3,4,5,6,7,8,9,10] 

是任何可以包含實數或具有任何長度(對於t和y相同的長度,我把它叫做NumData)。

我有一個函數,取決於一些參數P1,P2,...,P5。我想要做的是形成一個矩陣(NumData x 5),這取決於p,一個參數向量:

我不知道如何進一步。我想定義一個矩陣:

Matrix = ones(NumData,NumParameters) 

但是,當我嘗試分配,例如

Matrix(1,3) = p(1)+3*p(2) 

我得到了一個錯誤。

我試着定義:

Matrix(1,3)[email protected](p) p(1)+3*p(2) 

但它也沒用......

我試圖代碼來定義矩陣,就像這樣:

[email protected](p) [1 1 1 exp(-p(5)) -p(4)*exp(-p(5)) 
1 2 4 exp(-2*p(5)) -p(4)*exp(-2*p(5)) 
1 3 9 exp(-3*p(5)) -p(4)*exp(-3*p(5)) 
1 4 16 exp(-4*p(5)) -p(4)*exp(-4*p(5)) 
1 5 25 exp(-5*p(5)) -p(4)*exp(-5*p(5))] 

但它不是好,因爲這是針對特定情況...

我的主要目標是從t矢量形成J,並且臨時t J取決於矢量參數p,因此我可以稍後評估

A= J(1,2,1,2,2) 

例如,然後將A因子分解爲QR。

你有什麼建議嗎?或者我對Matlab要求太高了?

+1

請發佈您收到的錯誤消息。 – PearsonArtPhoto 2012-03-13 21:04:51

+0

如果沒有錯誤信息,你的問題就不清楚了。如果錯誤只是沿着「指示越界」的方向發展,那麼你的矩陣不夠大。 – learnvst 2012-03-14 01:45:42

回答

0

我不是100%確定你要做的事情,但讓我給你一些事情的例子,希望它可以幫助你一點。

p=[1 2 3 4 5]; 
M=zeros(3,2); 
M=[p(1) p(2) p(5); p(3)/p(2) p(5)^p(2) exp(p(3))]