Filter löschen
Filter löschen

How to handle cells?

1 Ansicht (letzte 30 Tage)
Dirk te Brake
Dirk te Brake am 19 Sep. 2023
Kommentiert: Dirk te Brake am 20 Sep. 2023
I'm making a Rock paper scissors game but have problems using cell variabels. I have a 9x2 cell variable i want to find on which row both colums have a 1, how do i do this? In this case I would like to know the position of row 2 so i can display the right outcome form the result array.
r = 'r'; s = 's'; p = 'p'; d = "Its a Draw!"; u1 = "User1 wins!"; u2 = "User2 wins!";
results = [r, r, d;
r, s, u1;
r, p, u2;
s, s, d;
s, p, u1;
s, r, u2;
p, p, d;
p, r, u1;
p, s, u2];
Res1 = strfind(results(:,1),'r');
Res2 = strfind(results(:,2),'s');
Res = [Res1, Res2];
disp(Res)
{[ 1]} {0×0 double} {[ 1]} {[ 1]} {[ 1]} {0×0 double} {0×0 double} {[ 1]} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double} {[ 1]}

Akzeptierte Antwort

Matt J
Matt J am 20 Sep. 2023
Bearbeitet: Matt J am 20 Sep. 2023
I would use logical arrays instead of cells.
r = 'r'; s = 's'; p = 'p'; d = "Its a Draw!"; u1 = "User1 wins!"; u2 = "User2 wins!";
results = [r, r, d;
r, s, u1;
r, p, u2;
s, s, d;
s, p, u1;
s, r, u2;
p, p, d;
p, r, u1;
p, s, u2];
Lookup = results(:,1:2)==["r","s"]
Lookup = 9×2 logical array
1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1
row=find(all(Lookup,2))
row = 2
outcome=results(row,3)
outcome = "User1 wins!"
  1 Kommentar
Dirk te Brake
Dirk te Brake am 20 Sep. 2023
I was looking for exactly that, thank you!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Just for fun finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by