Want to run the code for n values of X0, tried using for loop but didn,t get desired output.how to run for n values of X0?

if true
X = [ 0, 15 30 45 ];
Y = [50, 8.5, 2, 0.5];
X0 = 0;
n = 100;
f = 0.1;
x = linspace(min(X),max(X),n);
y = interp1(X,Y,x,'spline');
xt = X0+(0.1*(max(X)-min(X))*[-1 0 1]);
m = diff(y)./diff(x);
m = [m, m(end)];
k = min([find(x >= X0,1,'first'), length(x)]);
yt = y(k) + m(k)*(0.1*(max(X)-min(X))*[-1 0 1]);
plot(X,Y,'ro', x,y,'-b',xt,yt,'--g');
% code
end

3 Comments

Please format the above code so that it is readable. Highlight the code portions (not your text that asks a question or states the error) and press the {} Code button.
What do you want the n values for X0 to be? The first is zero, the second one is… What should this sequence be?

Sign in to comment.

 Accepted Answer

If X0 varies from 0 to 10 (and we assume a step size of 1), then a for loop could be introduced as follows
X0data = 0:1:10;
for i=1:length(X0data)
X0 = X0data(i);
X = [ 0, 15 30 45 ];
Y = [50, 8.5, 2, 0.5];
% etc.
plot(X,Y,'ro', x,y,'-b',xt,yt,'--g');
hold on; % to allow multiple plots on same figure
end
Try the above and see what happens.

4 Comments

want to plot outside for loop;want to keep command: plot(X,Y,'ro', x,y,'-b',xt,yt,'--g'); hold on; outside for loop .is it possible?
Yes…but then you have to "save" X and Y at each iteration. Try it out and see.

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Tags

Asked:

on 11 Jun 2014

Commented:

on 11 Jun 2014

Community Treasure Hunt

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

Start Hunting!