how to plot only one iteration in for loop?

4 Ansichten (letzte 30 Tage)
Brwa
Brwa am 29 Mai 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 Kommentare
Muruganandham Subramanian
Muruganandham Subramanian am 29 Mai 2013
plot b/w what?. Form your question clearly...
Brwa
Brwa am 29 Mai 2013
I have edited the question, i hope its been clear enough to understand

Melden Sie sich an, um zu kommentieren.

Antworten (4)

David Sanchez
David Sanchez am 29 Mai 2013
for i = 1:3
C = B + A(1:end,i);
if i==2
disp(C);
end
end
  2 Kommentare
Brwa
Brwa am 29 Mai 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 am 29 Mai 2013
Bearbeitet: Image Analyst am 29 Mai 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.

Melden Sie sich an, um zu kommentieren.


Muruganandham Subramanian
Muruganandham Subramanian am 29 Mai 2013
Bearbeitet: Muruganandham Subramanian am 29 Mai 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 Kommentar
Brwa
Brwa am 31 Mai 2013
Bearbeitet: Brwa am 31 Mai 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.

Melden Sie sich an, um zu kommentieren.


Andrei Bobrov
Andrei Bobrov am 29 Mai 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 Kommentar
Brwa
Brwa am 31 Mai 2013
Thanks Mr Andrei Bobrv. I always appreciate your help

Melden Sie sich an, um zu kommentieren.


Brwa
Brwa am 31 Mai 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.

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by