2014-02-15 4 views
1

집중과 시간의 관계를 그래프로 나타내려고합니다.Matlab : 연속 함수를 그릴 수 없습니다.

농도와 시간 사이의 관계는 불연속 함수

C(t) =0 for       t>=0 & t <=td 
    C(t) =A_max(t-td)      t>=td && t<=t_max 
     3 
    C(t) = Σ a(n)*e^-(b(n)*(t-t_max)) t> t_max /exponential decay 
     n=1 

값을 TD로 표시 입력 난의 값을 섭취 다음 함수를 작성한이 조각 별 함수

값 t_max되어있다 TD, t_max 시간 대 A1, A2, A3, B1, B2, B2와 같은 플롯 농도 계수

function c_o = Sample_function(td,t_max,a1,a2,a3,b1,b2,b3) 
t =(1:5:5000); % time of the sample post injection in mins 
c_o =(0 : 2275.3 :113765); % activity of the sample calibrated with Average well counter  
A_max= max(c_o);%Max value of Concentration (Peak of the curve) 

for i=1:length(t) 

if((t(i)>0) && (t(i)<=td)) 
    c_o(i)=0; 

elseif((t(i)>=td) && (t(i)<=t_max)) 
    c_o(i)= A_max*(t(i)-td); 

else(t(i)>t_max) 
    c_o(i)=(a1*exp(-b1*(t(i)-t_max)))+(a2*exp(-b2*(t(i)- t_max)))+(a3*exp(-b3*(t(i)-t_max))); 




end 


end 


fprintf('plotting Data ...\n'); 
%figure ; 
plot(c_o(i)); 
xlabel('time of the sample in minutes '); 
ylabel('Activity of the sample Ba/ml'); 
title (' Input function: Activity sample VS time '); 
pause; 
end 

위 함수 플롯해야 t, td.t_max, a1, a2, a3, b1, b2, b3의 각 값에 대한 농도 값은 사용자가 제공하고 t, td.t_max, a1, a2, a3, b1 값에 따라 플롯이 달라야합니다 , b2, b3.

은 친절하게 내 코드를 검토하시기 바랍니다이, 내가 지금 손에 matlab에없는 조각 현명한 기능

+2

오류 메시지가 있습니까? 입력 데이터없이 코드를 실행하는 것은 불가능합니다. – Daniel

+0

오류 기능이 없습니다, 내가 작성한 기능은 평화로운 기능이며, td, t_max, a1, a2, a3, b1, b2, b3의 입력 값은 다양 할 수 있습니다. 예를 들어, Sample_function (1040115520002100,5,4,2) 그러나이 입력 값으로 플롯 할 수 없습니다. – Devak

+0

'plot'의 입력을 확인하고,'0' 및 스칼라 '0'을 표시합니다. ''erasemode ','background''는 함수의 잘못된 사용법 인 것 같습니다. – Daniel

답변

2

을 플롯하는 적절한 방법 인 경우 그래서 내 대답이 작동하지 않을 수 있습니다.
이 줄 삭제 :
이 시도

plot(c_o(t(i)),'erasemode','background'); 

을하고 forend 후 다음 줄을 넣어 :

플롯 (c_o);

눈에 띄는 것이 하나 더 있습니다. 당신은 t = [1 501 1001 1501 ... 4501]
을 정의하고 그 안에 c_o 값을 c_o (t (i))로 변경합니다. 즉, c_o의 첫 번째, 501 번째, 1001 번째 ... 값만 수정합니다. 이것은 의도 된 것입니까?

+0

고마워, 많이 그 실수를 몰랐어, 나는 모든 시점을 수정하고 싶습니다 501st 또는 1001st, 어떻게 내 코드를 수정해야합니다 그래서 모든 인스턴트에 대한 데이터 시간은 500의 간격으로 플롯되지 않습니다. – Devak

+0

음모를 얻을 수 있지만 불행히도 내 문제를 극복하기위한 아이디어가 있다면 알려 주시면 코드에서 기하 급수적 인 감쇠 값을 올바르게 시각화 할 수 없습니다. – Devak

+1

코드는 t가 10 개의 값을 가지지 만 c_o는 더 많은 값을 가짐을 보여줍니다. 따라서 c_o와 t를 플로팅하려는 경우 오류가 발생하면 수정해야합니다. 다른 한편으로,'c_o (t (i))'를'c_o (i)'로 바꾸고 이것이 도움이되는지보십시오. 이 경우 c_o의 처음 10 개 값만 변경한다는 것을 명심하십시오. –

관련 문제