我是一名尝试使用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是每个个体不变的变量,但个体之间不同。
我想获得的是
最大高度之前的差分函数的最小高度
%设置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)
答案 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