wie werden die Nummern denn vergeben? Wo steht 1 momentan?
Es wäre gut, wenn du ein für andere (mich) ausführbares Beispiel zur Verfügung stellen kannst, am besten als .mlapp. Falls nötig zippen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Ok ich hab die Datei mal angehängt. Bisher ist es so, dass die 1 ganz unten steht.
Ich wollte durch dieses Teil Programm erstmal Probieren wie die Schleife und das erstellen funktioniert.
Im fertigen Programm soll es dann so sein, dass ganz oben ein Panel für die Einstellungen steht und darunter standartmäßig Messung 1. Wenn man dann mit dem Spinner weitere Messungen einträgt sollen die unter der Messung 1 erscheinen und auf der rechten Seite ein Scrollbalken.
Was "oben" oder "unten" ist, kontrollierst du über die Position. Wenn du z.B.
'Position',[0 1200-60*v 348 55]
angibst, ist die Reihenfolge wie von dir gewünscht. Nachteil ist allerdings, dass der Scroll-Balken bleibt.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Hmm sonst gibt es keine andere Möglichkeit das zu lösen?
Wie gesagt: du gibst die Positionen an. Wenn du eine andere Position haben möchtest, musst du eine andere Position angeben.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
was genau meinst du mit "Array" und "auslesen"?
In MATLAB kann alles ein Vektor oder eine Matrix sein, und man kann über Indizierung jeden darin enthaltenen Wert bekommen.
Zitat:
Jetzt muss ich nur noch hinbekommen, dass an der richtigen Stelle der richtige Wert steht.
Wenn du damit die Folge davor meinst, ist das doch nur eine ganz kleine Rechenaufgabe. Mit "Durchgang" (was auch immer das bei dir bedeutet) d und Panel k ist die Position:
5*d + (k-1)*5
Ein sehr ähnliches Konstrukt hatte ich dir ja auch schon vorgeschlagen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Meine Idee grade eben war es ein Array (100:-5:5) zu erstellen und dann mit circshift das Array bei jeden Durchgang der Schleife zu shiften um die Werte so zu haben wie in meinem vorherigen Post. Das klappt aber leider nicht weil ich ja nach dem ersten Durchgang der Schleife die Position für das Panel 1 gesetzt habe und dann nicht nochmal ändern kann.
Code:
properties(Access = public)
Messung_Panel
Messung_Label
yAchse = 100:-5:5 end
for v = length(app.Messung_Panel)+1:value
Y = circshift(app.yAchse,v);
%app.Einstellung_Panel = uipanel(app.Tab_2,'Position',[00+60*v 34855]);
app.Messung_Panel(v) = uipanel(app.Tab_2,'Position',[0 Y(v)34855]);
app.Messung_Label(v) = uilabel('Parent',app.Messung_Panel(v),'Position',[5,5,85,25],'Text',("Messung "+v),'FontSize',15);
end
for v = length(app.Messung_Panel):-1:value+1 delete(app.Messung_Panel(v))
app.Messung_Panel(v) = []; % zudem Eintrag entfernen end end end
Das klappt aber leider nicht weil ich ja nach dem ersten Durchgang der Schleife die Position für das Panel 1 gesetzt habe und dann nicht nochmal ändern kann.
Was heißt "klappt nicht"?
Du kannst Panel 1 entweder löschen und neu erstellen oder mit set(..., 'Position', ...) die Position ändern.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Wenn ich aber den Wert von 1 auf 2 wechsle läuft die Schleife aber nur noch einmal durch, da sie schon einmal durchgelaufen ist. Dadurch wird ja die Position für Panel 1, der ja im ersten durchlaufen der Schleife gesetzt wurde, nicht gelöscht oder neu festgelegt.
wenn du meinem Vorschlag folgst (löschen und neu erstellen), dann schon.
Alternative die Position abändern, wie gesagt mit set(..., 'Position', ...)
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Ok jetzt habe ich es verstanden. Das macht natürlich Sinn. Dann kann ich ja die zweite Schleife löschen und jedes Mal wenn sich der Wert des Spinners ändert alle vorhandenen Einträge löschen und die neuen erstellen oder?
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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
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.