matlab中的循环函数重复一个函数

时间:2013-06-10 09:52:31

标签: matlab numeric inflection

我是一名尝试使用matlab的生物学学生,因此我的数学和信息学知识有限。但是我试着写一些代码来获得以下内容:

我有一个函数y = f(t)来描述每个人的成长。 y = f(t)有8个变量,这些变量是常数但每个人都不同。通过区分y = f(t)函数获得速度曲线。下面可以看到生长和速度曲线的图片。红色曲线是生长曲线,蓝色曲线是速度曲线。

该函数由y(T)= M1 *(1-1 /(1 +(M2 *(M0 + M8))^ M5 +(M3 *(M0 + M8))^ M6 +(M4 *(M0描述+ M8))^ M7))。 t在这里是自变量。 m1到m8是每个个体不变的变量,但个体之间不同。

我想获得的是

  • 生长函数的拐点(t和f(t)值)
  • 增长函数的渐近值
  • 差异化函数的相应最大高度
  • 最大高度之前的差分函数的最小高度

    %设置variabelen syms t; M1 = xlsread( 'jongens0', 'A1:A10'); M2 = xlsread( 'jongens0', 'B1:B10'); 立方米= xlsread( 'jongens0', 'C1:C10'); M4 = xlsread( 'jongens0', 'D1:D10'); M5 = xlsread( 'jongens0', 'E1:E10'); M6 = xlsread( 'jongens0', 'F1:F10'); M7 = xlsread( 'jongens0', 'G1:G10'); M8 = xlsread( 'jongens0', 'H1:H10');

    %设置循环 因为i = 1:10

    %定义功能和差异化功能 Y(I)= M1(i)中。(1-1 ./(1+(平方米(I)。(T + M8(I)))。^ M5(ⅰ)+(立方米(ⅰ)。(T + M8(I)))。^ M6(ⅰ)+(M4(i)中。(T + M8(I)))。^ M7(I))) ; DY(ⅰ)= DIFF(Y(I))./ DT;

    %信息提取 a =最长(DY(I)); B = fminsearch(DY(i)中,X 0,[0,A]); C = MAX(Y(I)); d =限值(Y(I),INF); E = inflect_pt((Y(I)));

    A = [a b c d e]

    %将信息写入excel xlswrite( 'OUTPUT0',A)

1 个答案:

答案 0 :(得分:0)

您使用的MATLAB语法不正确。

for(i=0,t++,i<50)

比MATLAB更接近C ++语法。 (虽然不正确的C ++语法,正如@John所指出的那样)

我不确定您要使用此代码实现的目标:

fori=1:50,;
i;
end; 

但这不正确。 ,之后的1:50不应该在那里。您不希望在;行的末尾for i=1:50,也不希望在end之后。 (;用于抑制输出,这些行不会产生任何)

很难准确说出你想要达到的目标,但我认为这样的事情很接近:

y = zeros(size(t,1),50);

for i = 1:50
  y(i,:) = m1(i).(1-1./(1+(m2(i).(t+m8(i))).^m5(i) ...
      +(m3(i).(t+m8(i))).^m6(i)+(m4(i).(t+m8(i))).^m7(i)));
end