WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Sudoku Solver mit Variablen in Matritzen

 

Thomas123
Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 09.11.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.11.2016, 20:33     Titel: Sudoku Solver mit Variablen in Matritzen
  Antworten mit Zitat      
Hey Leute


Ich lese jede Zahl aus einem Excel Sudoku Gitter auch die Nullen und speichere die Variablen einzeln ab, weil ich sie später noch für spezielle plots brauche.

das sieht dann so aus:

Code:
A1 = xlsread('Sudoku_Excel_Sheet.xlsx','A1:A1');
A2 = xlsread('Sudoku_Excel_Sheet.xlsx','A2:A2');
A3 = xlsread('Sudoku_Excel_Sheet.xlsx','A3:A3');
A4 = xlsread('Sudoku_Excel_Sheet.xlsx','A4:A4');
A5 = xlsread('Sudoku_Excel_Sheet.xlsx','A5:A5');
A6 = xlsread('Sudoku_Excel_Sheet.xlsx','A6:A6');
A7 = xlsread('Sudoku_Excel_Sheet.xlsx','A7:A7');
A8 = xlsread('Sudoku_Excel_Sheet.xlsx','A8:A8');
A9 = xlsread('Sudoku_Excel_Sheet.xlsx','A9:A9');
% ------------------------------------------------------------------------
B1 = xlsread('Sudoku_Excel_Sheet.xlsx','B1:B1');
B2 = xlsread('Sudoku_Excel_Sheet.xlsx','B2:B2');
B3 = xlsread('Sudoku_Excel_Sheet.xlsx','B3:B3');
B4 = xlsread('Sudoku_Excel_Sheet.xlsx','B4:B4');
B5 = xlsread('Sudoku_Excel_Sheet.xlsx','B5:B5');
B6 = xlsread('Sudoku_Excel_Sheet.xlsx','B6:B6');
B7 = xlsread('Sudoku_Excel_Sheet.xlsx','B7:B7');
B8 = xlsread('Sudoku_Excel_Sheet.xlsx','B8:B8');
B9 = xlsread('Sudoku_Excel_Sheet.xlsx','B9:B9');

usw.

Dann versuche ich ein Sudoku zu zeichnen im Matlab hier der Code.

syms A1 A2 A3 A4 A5 A6 A7 A8 A9 B1 B2 B3 B4 B5 B6 B7 B8 B9
syms C1 C2 C3 C4 C5 C6 C7 C8 C9 D1 D2 D3 D4 D5 D6 D7 D8 D9
syms E1 E2 E3 E4 E5 E6 E7 E8 E9 F1 F2 F3 F4 F5 F6 F7 F8 F9
syms G1 G2 G3 G4 G5 G6 G7 G8 G9 H1 H2 H3 H4 H5 H6 H7 H8 H9
syms I1 I2 I3 I4 I5 I6 I7 I8 I9

B=[ 1,1,A1;
    1,2,B1;
    1,3,C1;
    1,4,D1;
    1,5,E1;
    1,6,F1;
    1,7,G1;
    1,8,H1;
    1,9,I1;
    2,1,A2;
    2,2,B2;
    2,3,C2;
    2,4,D2;
    2,5,E2;
    2,6,F2;
    2,7,G2;
    2,8,H2;
    2,9,I2;
    3,1,A3;
    3,2,B3;
    3,3,C3;
    3,4,D3;
    3,5,E3;
    3,6,F3;
    3,7,G3;
    3,8,H3;
    3,9,I3;
    4,1,A4;
    4,2,B4;
    4,3,C4;
    4,4,D4;
    4,5,E4;
    4,6,F4;
    4,7,G4;
    4,8,H4;
    4,9,I4;
    5,1,A5;
    5,2,B5;
    5,3,C5;
    5,4,D5;
    5,5,E5;
    5,6,F5;
    5,7,G5;
    5,8,H5;
    5,9,I5;
    6,1,A6;
    6,2,B6;
    6,3,C6;
    6,4,D6;
    6,5,E6;
    6,6,F6;
    6,7,G6;
    6,8,H6;
    6,9,I6;
    7,1,A7;
    7,2,B7;
    7,3,C7;
    7,4,D7;
    7,5,E7;
    7,6,F7;
    7,7,G7;
    7,8,H7;
    7,9,I7;
    8,1,A8;
    8,2,B8;
    8,3,C8;
    8,4,D8;
    8,5,E8;
    8,6,F8;
    8,7,G8;
    8,8,H8;
    8,9,I8;
    9,1,A9;
    9,2,B9;
    9,3,C9;
    9,4,D9;
    9,5,E9;
    9,6,F9;
    9,7,G9;
    9,8,H9;
    9,9,I9; ];
   
drawSudoku(B)
 


Nun gibt mir Matlab einen fehler an bei der line drawSudoku(B) habe ich etwas vergessen?
Versteht Matlab die Matritze wenn ich vorher alle Variablen mit syms definiere?


Vielen Dank schon mal für eure Vorschläge.

Thomas

[EDITED, Jan, Bitte Code-Umgebung verwenden - danke!]
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.11.2016, 00:18     Titel:
  Antworten mit Zitat      
Hallo,

um dir bei einer Fehlermeldung helfen zu können, müsstest du sie schon posten.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 10.11.2016, 05:16     Titel: Re: Sudoku Solver mit Variablen in Matritzen
  Antworten mit Zitat      
Hallo Thomas123,

Die durchnummerierten Variablen sind immer eine schlechte Idee. Es wäre viel übersichtlicher gleich eine Matrix zu importieren mit einem einzelnen xlsread Befehl.
Du definierst "A1" zunächst als Zahl und später als syms Variable. Wieso? Wozu sollen diese Variablen symbolisch sein?

Ohne die Fehlermeldung und den Code von "drawSudoku" kann man keine Ratschläge geben.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Thomas123
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 09.11.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.11.2016, 16:21     Titel:
  Antworten mit Zitat      
Hey vielen dank für die schnellen Antworten

Unterhalb ist der komplette Code.

Code:
[EDITED, Jan, Code entfernt, siehe meine Anwort]
drawSudoku(B)
 




Wenn ich wie oben beschrieben mit syms arbeite und die Variablen umschreibe dann kommt der Fehler bei drawSudoku(B).

Hier die Fehlermeldung:

Undefined function or variable 'drawSudoku'.

Error in Sudoku_Programm (line 209)
drawSudoku(B)


Vielen Dank

grüsse

Thomas
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 11.11.2016, 17:26     Titel:
  Antworten mit Zitat      
Hallo Thomas123,

Ich habe die große Menge an Code entfernt, weil es ja der Teil war, der ohne Fehler lief. Interessant ist aber der Code von "drawSudoku".
Wieso arbeitest Du hier mit syms ? Das klingt bei einem Sudoku-Solver vollkommen deplatziert. Aber vielleicht sehe ich da etwas nicht.

Zitat:
Undefined function or variable 'drawSudoku'.

Ah, das ist erhellend: Matlab findet den Befehl "drawSudoku" nicht. Hast Du eine solche Funktion geschrieben? Wenn ja, wo ist sie gespeichert? Ist der entsprechende Ordner im Pfad eingefügt?

Die Fehlermedlung von Matlab ist also eigentlich bereits klar und deutlich. Es lohnt sich immer sie zu lesen und zu beherzigen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Thomas123
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 09.11.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.11.2016, 22:30     Titel:
  Antworten mit Zitat      
Vielen Dank für deine Antwort


stimmt syms wird nirgends gebraucht ich habe es entfernt.


Ich habe nur das Problem gehabt das einige Variablen im Sudoku kein Value hatten und somit meine Matrize schon eine Fehlermeldung gehabt hat.

Um diesen Fehler zu überbrücken habe ich in meinem Excel sheet mal überall wo nichts stand die 0 eingefügt.

Kann ich auch beim Auslesen der Excel Tabelle sagen das überall da wo nichts steht in der Excel Tabelle eine Null eingefügt werden soll oder versteht das die Matrize wenn sie an bestimmten stellen zwar eine Variable hat aber ohne Wert?

Dann die 2te Frage wie erstelle ich eine drawSudoku Funktion? Im netz finde ich nur die solver.



Vielen Dank für eure Hilfe

gruss

Thomas
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.