i not able to find error..not getting right plot
조회 수: 1 (최근 30일)
이전 댓글 표시
clc;
clear all;
k=1;
g=0.01:.1:6;
lambda=2;
b=2;
c=1;
l=2;
for x=0.01:.1:6
T=[];
P=(0.5*lambda)/((b^(lambda*c))*gamma(c));
Q=(k^0.5)*l^(lambda*c-0.5)/((2*pi)^(0.5*(l+k)-1));
R=evalin(symengine, sprintf('meijerG([[1],[]], [[1,0.5],[]],%f)',x^2));
T=[T P*Q*R];
end
plot(g,T)
채택된 답변
dpb
2015년 8월 17일
for x=0.01:.1:6
T=[];
...
T=[T P*Q*R];
end
plot(g,T)
You wipe out T every pass thru the loop so the result is simply the last P*Q*R computed. Move that outside the loop altho "growing" an array like this dynamically is not good practice; use preallocation and fill instead.
T=zeros(size(0.01:0.1:6)); % preallocate
ix=0; % array index
for x=0.01:0.1:6
...
ix=ix+1;
T(ix)=P*Q*R;
end
Or, use the loop for an integer variable and compute x dynamically as x=x+dx;
댓글 수: 4
dpb
2015년 8월 18일
In that case, you've got to allocated a square array instead of a vector and store into it...
T(ix,:)=P*Q*R;
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!