Matlab code running loops to meet conditions

In summary, the conversation discusses a problem involving generating all numbers from 1 to 20 in modular 21 using five variables. The MATLAB code provided does not output anything and has a while loop that may not be necessary. The correct solution is to have the variables a, b, c, d, and e in the set {0,1,2,...20} and to use a for loop to check if all numbers are generated.
  • #1
thestrong
9
0

Homework Statement


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.[/B]

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.

The Attempt at a Solution


Matlab:
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:
Physics news on Phys.org
  • #2
I added code tags to your listing for better preaentation.

However it would be better if you can fix the indenting too.
 
  • #3
what is the code supposed to output?
 
  • #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.
 
  • #5
the values of abcd & e are stored in your answers variable...
just print it...
or add a line below that says
answers
 
  • #6
I tried that, but when I run the code my workspace is empty.
 
  • #7
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
 
  • #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.
 
  • #9
I resolved my issue. Thanks!
 

FAQ: Matlab code running loops to meet conditions

What is a loop in Matlab code?

A loop in Matlab code is a programming structure that allows a set of instructions to be repeated multiple times. It helps to automate repetitive tasks and makes the code more efficient.

How do I write a loop in Matlab code?

To write a loop in Matlab code, you can use the "for" or "while" keywords followed by a set of conditions that determine when the loop should run. You also need to specify the instructions that should be repeated within the loop.

How can I use loops to meet specific conditions in my code?

You can use conditional statements such as "if" and "else" within the loop to check for specific conditions and execute different sets of instructions based on the result. This allows you to control the flow of the loop and meet certain conditions.

What are the benefits of using loops in Matlab code?

Using loops in Matlab code can make your code more concise and efficient by automating repetitive tasks. It also allows for more dynamic and flexible code, as you can easily change the conditions and instructions within the loop to meet different needs.

Are there any limitations to using loops in Matlab code?

One limitation of using loops in Matlab code is that if they are not properly structured, they can lead to infinite loops, where the loop never ends. This can cause the code to crash or freeze. It is important to carefully design and test your loops to avoid this issue.

Similar threads

Replies
1
Views
1K
Replies
10
Views
2K
Replies
2
Views
1K
Replies
7
Views
1K
Replies
2
Views
1K
Replies
1
Views
2K
Replies
15
Views
4K
Back
Top