I need to plot a t vs. s diagram. The function is: s = (sigma - 3 + 0.072 * t * (1 + 0.072 * t)) / 0.77. I'm dying to know why the loop inside loop does not give me the correct plot. Thank you so much.
INCORRECT:
clear all;
Sigma = 0:5:30;
T = 0:1:30;
for sigma = 1:length(Sigma);
for t = 1:length(T);
s(sigma,t) = (sigma-3+0.072*t*(1+0.072*t))/0.77;
end;
end;
plot(s,T)
CORRECT:
clear all;
Sigma = 5:5:30;
T = 0:1:30;
for t = 1:length(T);
s(Sigma,t) = (Sigma-3+0.072*t*(1+0.072*t))/0.77;
end;
plot(s,T);
Thank you.*

 채택된 답변

Walter Roberson
Walter Roberson 2014년 1월 22일

0 개 추천

In your first version, you have
for sigma = 1 : length(Sigma)
which makes sigma 1, 2, 3, ... up to the number of values in Sigma.
In your second version, you use Sigma in your calculation, which uses the contents of Sigma rather than the numbers up to the length of Sigma.
Fix:
s(sigma,t) = (Sigma(sigma)-3+0.072*t*(1+0.072*t))/0.77;

추가 답변 (1개)

Azzi Abdelmalek
Azzi Abdelmalek 2014년 1월 22일

1 개 추천

clear
Sigma = 5:5:30;
n=numel(Sigma)
t = linspace(0,30,n);
s=zeros(1,n);
for k = 1:n;
s(k) = (Sigma(k)-3+0.072*t(k)*(1+0.072*t(k)))/0.77;
end;
plot(t,s);

카테고리

도움말 센터File Exchange에서 Graphics Objects에 대해 자세히 알아보기

질문:

2014년 1월 22일

댓글:

2014년 1월 23일

Community Treasure Hunt

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

Start Hunting!

Translated by