2012-03-13 181 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))]