index must be a positive integer or logical.

조회 수: 2 (최근 30일)
sharif
sharif 2014년 3월 11일
편집: Chris C 2014년 3월 12일
c1=3.29;
c2=9.90;
c3=0.77;
c4=0.20;
Ln=zeros(1,length(t));
for n=1:1:100;
for t=0:-0.1:-1;
Ln(t)=-(c1+c2*log(n)*log(-t))-(c3+c4*log(n));
semilogx(n,Ln(t));
end
end
I really want t to count negative, what am I supposed to do??
  댓글 수: 3
Marta Salas
Marta Salas 2014년 3월 11일
편집: Marta Salas 2014년 3월 11일
You're going to define an index that it's not related with t but with the size of t. However I don't understand what you are trying to plot there. Which is the result you are expecting from that code? what do you want to plot on semilogx?
sharif
sharif 2014년 3월 11일
It is an approximate model of flat edge in communication systems where I must have 10 different lines running from n=1 to n=100

댓글을 달려면 로그인하십시오.

채택된 답변

Chris C
Chris C 2014년 3월 11일
I'm still not reall clear on what you're looking for, but try this version of Marta's code...
c1=3.29;
c2=9.90;
c3=0.77;
c4=0.20;
t = linspace(0,-1,10); %definition of t vector
n = linspace(1,100);
Ln=zeros(length(t),length(n));
for i=1:length(t)
for j = 1:length(n);
Ln(i,j)= -(c1+c2*log(n(j))*log(-t(i)))-(c3+c4*log(n(j)));
end
semilogx(n,Ln(i,:))
hold on
end
  댓글 수: 2
sharif
sharif 2014년 3월 11일
yes I think this method is correct, although the graph is wrong, I have to check why it's wrong, thanks
Chris C
Chris C 2014년 3월 12일
편집: Chris C 2014년 3월 12일
What's wrong about the graph? If it's because the lines are all blue all you have to do is populate the data first within the for loops and then graph it all at once after the loops instead of plotting a line after each iteration around i.

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

dpb
dpb 2014년 3월 11일
Keep the time as associated independent vector of same length as the solution vector but numbered from 1:N instead of trying to use it as an index.

Marta Salas
Marta Salas 2014년 3월 11일
A solution is this:
c1=3.29;
c2=9.90;
c3=0.77;
c4=0.20;
Ln=zeros(1,length(t));
t= 0:-0.1:-1; %definition of t vector
for n=1:1:100;
for i=1:length(t);
Ln(i)= -(c1+c2*log(n)*log(-t(i)))-(c3+c4*log(n));
semilogx(n,Ln(i));
end
end
Take into account semilogx(n,Ln(i)) is plotting a point. is this the right solution?
  댓글 수: 7
Marta Salas
Marta Salas 2014년 3월 11일
Sorry, I don't really understand what you mean about 10 lines.
dpb
dpb 2014년 3월 11일
Well, read and do a little thinking on your own...fix the upper limit on the for loop to be 1:length(n)

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Detection에 대해 자세히 알아보기

태그

아직 태그를 입력하지 않았습니다.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by