1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Matlab code running loops to meet conditions

  1. Apr 23, 2015 #1
    1. The problem statement, all variables and given/known data
    This is not homework but I am trying to solve a problem to see to general a set of numbers for the grassmanian equations to use in something else.


    I have five variables a,b,c,d,e. a-b,a-c,a-d,a-e,b-a,b-c,.....etc so that none of them are the same so it generates all numbers from 1,2,3,4,....20 in modular 21. Clearly a,b,c,d,e can not be the same since it will obviously not generate all the numbers. Below is my matlab code.

    a,b,c,d,e must be in the {0,1,2,3,....20}

    The code does not even output anything.

    3. The attempt at a solution
    Code (Matlab M):

    clear all;
    close all;
    k=21;
    flag =0;
    for i =0:16
    a=i;
    if flag ==1
      break;
    end
      for j=1:17
    b=j;
    if flag == 1
      break;
    end
      for h =2:18
    c= h;
    if flag == 1
      break;
    end
      for l=3:19
    d=l;
    if flag ==1
      break;
    end
      for p=4:20
    e=p;

    g1=a-b;
    g2=a-c;
    g3=a-d;
    g4=a-e;
    g5=b-a;
    g6=b-c;
    g7=b-d;
    g8=b-e;
    g9=c-a;
    g10=c-b;
    g11=c-d;
    g12=c-e;
    g13=d-a;
    g14=d-b;
    g15=d-c;
    g16=d-e;
    g17=e-a;
    g18=e-b;
    g19=e-c;
    g20=e-d;
    G=[ mod(g1,k), mod(g2,k), mod(g3,k), mod(g4,k), mod(g5,k), mod(g6,k), mod(g7,k), mod(g8,k), mod(g9,k), mod(g10,k), mod(g11,k), mod(g12,k), mod(g13,k), mod(g14,k), mod(g15,k), mod(g16,k), mod(g17,k), mod(g18,k), mod(g19,k), mod(g20,k)];
    S=sort(G);
    AllElements=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20];
    true=isequal(S,AllElements);
    if (true == 1)
      answers=[a,b,c,d,e];
      flag = 1;
      break;
    end
      end
      end
      end
      end
    end






     
     
     
    Last edited: Apr 23, 2015
  2. jcsd
  3. Apr 23, 2015 #2

    jedishrfu

    Staff: Mentor

    I added code tags to your listing for better preaentation.

    However it would be better if you can fix the indenting too.
     
  4. Apr 23, 2015 #3

    donpacino

    User Avatar
    Gold Member

    what is the code supposed to output?
     
  5. Apr 23, 2015 #4
    Oh yeah I forgot to code that. It is suppose to just stop when the condition is met that the entire G = {1,2,3,4,5,....20} is generated from the values of a,b,c,d,e and I just want the values of a,b,c,d,e.
     
  6. Apr 23, 2015 #5

    donpacino

    User Avatar
    Gold Member

    the values of abcd & e are stored in your answers variable....
    just print it....
    or add a line below that says
    answers
     
  7. Apr 23, 2015 #6
    I tried that, but when I run the code my workspace is empty.
     
  8. Apr 23, 2015 #7

    donpacino

    User Avatar
    Gold Member

    that is true. So there is one way to clear your workstation, whcih is to use the clear all command
    you have code after it, there the code must not run.

    If I were you I would check my while loop, or remove it all together, infinite loops are no fun
     
  9. Apr 23, 2015 #8
    I removed the while loop, which I do not think is actually necessary. It does have a workspace, but the code is breaking at an incorrect solution of
    S =

    1 1 1 1 2 2 2 3 3 4 17 18 18 19 19 19 20 20 20 20. When it should be S = 1 2 3 ....20.
     
  10. Apr 23, 2015 #9
    I resolved my issue. Thanks!
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted



Similar Discussions: Matlab code running loops to meet conditions
  1. For loops in Matlab (Replies: 22)

  2. Matlab code (Replies: 14)

  3. MatLab for loops (Replies: 3)

  4. MATLAB "for loops" (Replies: 8)

Loading...