エラーのない次のコード(質問の最後に書かれています)を書きましたが、実行中に上書きの問題があると思います。プログラム中に、グラフを描きたいと思ったケースが 2 つあります。1 つ目は ezplot で作成した曲線のグラフ、2 つ目は回帰直線を描きたいプロット回帰です。
コードをスキップすると、plotregression(C_i, D_i)
5 つすべてのロジスティック関数のグラフを問題なく表示できます (実際、ここにいるユーザーの 1 人が、それを行うのに役立つホールド オン ホールド オフのコードを見せてくれました) plotregression(C_i, D_i)
。
すべての回帰線が表示されますが、すべての回帰線がすべて同じ図にあるのとは対照的に、さまざまな回帰係数で回帰線が変化し続けます。コードを実行すると、実際にこれが起こっていることがわかります。
の効果
plotregression(C_i, D_i)
はなくなりました。5 つのロジスティック関数のグラフをプロットしなくなります。
2 つの質問があります。
1 つは 5 つのロジスティック曲線すべてを示し、もう 1 つは 5 つの回帰曲線すべてを示す 2 つの図を取得したい場合、仕事を完了するためにプログラムを最小限に変更するにはどうすればよいでしょうか?
回帰曲線の書き直しを止めるにはどうすればよいですか? ロジスティック曲線で同じことを避けるために「ホールドオンホールドオフ」を使用しましたが、回帰曲線では機能していませんか?
コードは次のとおりです。
syms t;
hold on;
for i=1:5;
P_i=0.009;
r_i=abs(sin(i.^-1));
y_i(t)= P_i*exp(r_i*t)/(1+P_i*(exp(r_i*t)-1));
t_1= 1+rand; t_2= 16+rand; t_3=31+rand;
time_points=[1, t_1; 1, t_2; 1, t_3];
biomarker_values= double([y_i(t_1);y_i(t_2);y_i(t_3)]);
X=vertcat(X,time_points);
Z=blkdiag(Z,time_points);
Y=vertcat(Y,biomarker_values);
G=vertcat(G,[i,i,i]');
ezplot(y_i,[-50,100]);
C_i=time_points(:,2)
D_i=biomarker_values
plotregression(C_i, D_i)
終わり;
hold off;