Matlab |几个变量的矩阵函数

时间:2012-03-13 21:01:13

标签: function matlab matrix

我正在使用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)=@(p) p(1)+3*p(2)

但它没用......

我尝试在代码中定义矩阵,如下所示:

J=@(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,并且J取决于向量参数p,所以我可以稍后评估

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

然后将A分解为QR。

你有什么建议吗?或者我对Matlab要求太多了?

1 个答案:

答案 0 :(得分:0)

我不是百分之百确定你要做什么,但是让我举几个可行的例子,希望它可以帮助你一点。

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))]