how to plot only one iteration in for loop?

4 views (last 30 days)
Brwa
Brwa on 29 May 2013
A=[2 2 2; 3 3 3; 1 1 1];
B=[1 2 3];
As you can see it bellow, this loop consist of 3 iterations. Can i ask Matlab to plot the second case or third case only? if its possible, please tell me how?
for i = 1:3
C = B + A(1:end,i)
end
C1 =
3
5
4
C2 =3
5
4
C3 =3
5
4
plot (x,C2)
or
plot (x,C3)
Thank you guys for your help, I appreciate any help from you
  2 Comments
Muruganandham Subramanian
Muruganandham Subramanian on 29 May 2013
plot b/w what?. Form your question clearly...
Brwa
Brwa on 29 May 2013
I have edited the question, i hope its been clear enough to understand

Sign in to comment.

Answers (4)

David Sanchez
David Sanchez on 29 May 2013
for i = 1:3
C = B + A(1:end,i);
if i==2
disp(C);
end
end
  2 Comments
Brwa
Brwa on 29 May 2013
Hi Mr David thanks for your help again, but what if i have a big loop such as
for i =1:100
is there a better way to do it?
Image Analyst
Image Analyst on 29 May 2013
Edited: Image Analyst on 29 May 2013
That is not a big loop. Now if you get into the tens of millions of iterations, then you're getting big, but 100 is far, far from a "big loop" so don't worry about it. There is an unjust fear of loops going around. For example, look at this loop where I iterate a million times:
tic;
count = 0;
for k = 1 : 1000000
count = count + 1;
end
toc
Now look at the elapsed time:
Elapsed time is 0.0071 seconds.

Sign in to comment.


Muruganandham Subramanian
Muruganandham Subramanian on 29 May 2013
Edited: Muruganandham Subramanian on 29 May 2013
what is x?..see while plotting the size of xlabel and ylabel should be same.. In ur code x might be
x=[1 2 3];
If its right, then you can do it by
for i = 1:3
C = B + A(1:end,i);
if i~=1
plot(x,C);
end
end
  1 Comment
Brwa
Brwa on 31 May 2013
Edited: Brwa on 31 May 2013
Dear Muruganandham Subramanian you are right, your code is very simple and almost the same as David Sanchez's code, but my problem is, i only know what i want to plot after the end of loop or after i know the result of all C1, C2, Cn.
After knowing the result probabily i will be interested to plot C2 or C3 it depend on the result.
so if x = [ 1 2 3]
for i = 1:3
C = B + A(1:end,i);
end
Ans
C1
C2
C3
now i can decide which one i should plot.
maybe i want to plot (x,C2)
Note C1 not equal C2 not equal C3, in my real code, I just dont put my real code because its too long its consist of several M.files
Thanks brother, Thanks to all of you. I really dont know how to appreciate your helps and your kindness. i hope someday i can help people with my knowledge too.

Sign in to comment.


Andrei Bobrov
Andrei Bobrov on 29 May 2013
id = [4 10 26 78]; % Let id case's use for the plotting.
for i1 = 1:100
C = B + A(1:end,i1);
if ismember(i1,id)
plot(x,C);
end
end
  1 Comment
Brwa
Brwa on 31 May 2013
Thanks Mr Andrei Bobrv. I always appreciate your help

Sign in to comment.


Brwa
Brwa on 31 May 2013
Thanks you guys, I collected all of your ideas then I come out with new code which can do my job.
Here is the code
A=[2 4 2; 3 4 3; 1 1 1]
B=[1; 2; 3];
x =[1 2 3];
for i = 1:3
C = B + A(:,i);
end
Ans =
C1
C2
C3
Now, if i want to plot C2 then i have to make another loop. As I said i can only make sure what do i want to plot after all results of C from the first loop.
for i = 1:3
C = B + A(:,i);
C
if i==2
plot(x,C);
end
end
If you have better idea please share it with us.

Categories

Find more on MATLAB in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!