Azzera filtri
Azzera filtri

how to plot only one iteration in for loop?

3 visualizzazioni (ultimi 30 giorni)
Brwa
Brwa il 29 Mag 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 Commenti
Muruganandham Subramanian
Muruganandham Subramanian il 29 Mag 2013
plot b/w what?. Form your question clearly...
Brwa
Brwa il 29 Mag 2013
I have edited the question, i hope its been clear enough to understand

Accedi per commentare.

Risposte (4)

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

Accedi per commentare.


Muruganandham Subramanian
Muruganandham Subramanian il 29 Mag 2013
Modificato: Muruganandham Subramanian il 29 Mag 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 Commento
Brwa
Brwa il 31 Mag 2013
Modificato: Brwa il 31 Mag 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.

Accedi per commentare.


Andrei Bobrov
Andrei Bobrov il 29 Mag 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

Brwa
Brwa il 31 Mag 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.

Categorie

Scopri di più su Programming in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by