Matrix auslesen in Gui < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Hallo erstmal
Nach unserer Einführung in Matlab an der Uni sollen wir nun eine größere Aufgabe lösen.
Dabei sind mir leider ein paar Fragen aufgekommen, die ich selbständig mir nicht lösen kann.
Ich möchte, dass der Anwender Zeilenweise eine n*n, 1<n<=10, Matrix eingeben kann (mit Hilfe von guide erstellte Gui).
- Frage: wo (bzw. in welcher function) könnte ich die 'Laufvariable' für die Zeilen im Quelltext definieren, so dass ich sie ändern und auf 'n' testen kann? wo definiere ich die Matrixvariable?
Nach dem einlesen möchte ich sie gerne komplett (am besten noch editierbar) in einem weitern panel anzeigen lassen.
- Frage: Gibt es eine Möglichkeit dieses zu programmieren, ohne für jedes Element ein editierbares Feld zu erstellen? Gibt es eine einfache Möglichkeit die Matrix darstellen zu lassen (auch ohne edit.)?
Über eine Antwort würde ich mich freuen.
Gruß Guido
|
|
|
|
Hallo,
ich weiß nicht genau, in welchem Kontext das Ganze geschehen soll, aber ich hänge mal eine GUI an, die zeigen soll, wie ich das gemacht hätte:
einfach ein mehrzeiliges Textfeld, in das man beliebige Matrizen eintragen kann. Daneben ein kleines Label, das die Größe der Matrix anzeigt, wenn man irgendwo außerhalb des Edit-Feldes klickt.
Das Parsen der Matrix (und alles andere auch) passiert in der untersten Funktion der M-Datei. Schau es dir einfach mal an.
GUIMatrix.m
GUIMatrix.fig
Gruß
Martin
Dateianhänge: Anhang Nr. 1 (Typ: m) [nicht öffentlich] Anhang Nr. 2 (Typ: fig) [nicht öffentlich]
|
|
|
|
|
Erstmal: Danke für die Antwort
ok. Das würde funktionieren.
Weiterhin ist die Matrix ständig editierbar, was auch gut ist.
Meine Aufgabenstellung: das Gaussverfahren anhand einer eingegebenen Matrize ausführen lassen.
Meine Idee war, die einzelnen Gleichungen vom User eingeben zu lassen, diese in Matrix + Vektor zu speichern. Diese sollten dann zusammen in einem weiteren panel angezeigt werden.
Durch eine Vorauswahl ist die Matrix n*n der vektor n groß.
pivot und gegebenfalls einzelschritte sollten angezeigt werden (z.b. durch farbe).
Daher ist diese Lösung wahrscheinlich für die eingabe geeignet, für die Ausgabe wohl nicht so übersichtlich.
Mir schwebt leider nur die aufteilung in [mm] n^2 [/mm] edit fenstern vor. aber der Übertrag der matrix in diese felder scheint mir etwas umständlich.
Jeden Einzelnen String zu überschreiben + das ausblenden falls man nach einer 10x10 eine 6x6 bearbeiten möchte.....
Da hab ich ja sehr schnell einen 10k-zeilen code
|
|
|
|
|
Hallo,
die Eingabe der Gleichungen müsstest du dann aber noch parsen. Da ist eine Matrix natürlich viel einfacher.
Mit Farben (ohne ein Element pro Matrixeintrag) kann ich nicht dienen. Da würde ich die Hervorhebung einfach mit Klammern machen, z.B.:
1 2 [3] 4
oder so ähnlich.
Wenn man das noch alles schön untereinander macht, dann ist es immer noch übersichtlich.
Allerdings hatte ich bislang kaum mit GUIs zu tun. Die scheinen aber auch nicht sonderlich flexibel zu sein (zumindest was de Farben angeht).
Auf jeden Fall würde ich das mit den [mm] n^2 [/mm] Fenstern lassen. Das bringt nur unnötig Komplexität ins Spiel. Dann wirklich lieber grafisch hervorheben.
Die Schritte willst du dann per Button ausführen, oder wie?
Gruß
Martin
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 22:01 Mi 24.10.2007 | Autor: | Master_G_A |
Geplant war die Umformung pro Schritt mit nem Button-kilck. Das dürfte wenn die übertragung klappt meinermeinung nach nicht so n problem sein.
Werde es dann mal mit der editbox versuchen. doch nicht mehr heute
Denke die Klammerlösung sollte auch reichen. Hatte mir wohl anfangs etwas zuviel vorgenommen.
Farben sind in der Gui schon möglich, einfach background auf rot setzen o.ä.; Flexibilität scheint jedoch wirklich nicht die stärke von der matlab gui zu sein.
ich danke dir auf jeden Fall. Bestimmt fällt mir im laufe des projekts aber noch eine frage ein :-D
|
|
|
|