How to run multiple for loops for values of x up to y and then from y up to z.

Hello!
I am trying to write a script that will plot a graph of x against y.
My values of x go from 0 to b in 1000 steps.
I also have another value 'i' which is used in the initial for loop.
a and c are just two values inputted earlier in the script.
So to start with I have:
x = linspace(0,b,1000);
for i = imin : iinc : imax
for x < a
y = some function
end
for a < x < c
y = some function
end
end
I know that the two internal for loops wont run but im not sure how to write it so that they do.
Any help would be appreciated, Thanks!

2 comentarios

Could it look something like this?
x = linspace(0,b,1000);
for i = imin : iinc : imax
for p = x : a
y = some function
end
for q = x : c
y = some function
end
end
for p = x : a
when x is an array is the same as
for p = x(1) : a
Not at all what the OP is asking.

Iniciar sesión para comentar.

Respuestas (2)

a = 3; b = 30; c = 4; %for example
x = linspace(0,b,1000);
%ignoring the i loop, since it's irrelevant to your question
for xx = x(x < a)
%do something with xx
fprintf('in 1st loop, xx = %f\n', xx);
end
fprintf('\n');
for xx = x(x > a & x < c)
%do something with xx
fprintf('in 2nd loop, xx = %f\n', xx);
end
Thorsten
Thorsten el 1 de Dic. de 2015
Editada: Thorsten el 1 de Dic. de 2015
You don't need loops. Use logical indices instead:
b = 10; x = linspace(0,b,1000);
ind = x < a;
y(ind) = x(ind).^2; % some function on x
c = 8;
ind = (a <= x) & (x < c);
y(ind) = x(ind).^3; % another function on x
plot(x,y)

1 comentario

"You don't need loops". Well, that depends on the unspecified function. It may only work on scalars.

Iniciar sesión para comentar.

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Preguntada:

el 1 de Dic. de 2015

Comentada:

el 1 de Dic. de 2015

Community Treasure Hunt

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

Start Hunting!

Translated by