How to run multiple for loops for values of x up to y and then from y up to z.
1 view (last 30 days)
Show older comments
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 Comments
Guillaume
on 1 Dec 2015
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.
Answers (2)
Guillaume
on 1 Dec 2015
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
0 Comments
Thorsten
on 1 Dec 2015
Edited: Thorsten
on 1 Dec 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 Comment
Guillaume
on 1 Dec 2015
"You don't need loops". Well, that depends on the unspecified function. It may only work on scalars.
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!