zunächst mal sorry wenn der Titel des Beitrags nicht wirklich das Problem exakt schildert, aber ich wusste nicht wirklich wie ich das Problem umschreiben kann.
Ich stehe wieder mal auf dem Schlauch. Ich habe zwar eine Lösung gefunden, aber leider ist die nicht so schön wie ich finde und vor allem nicht flexibel einsetzbar. Es geht um folgendes: In der Konsole erscheint eine Zahlenfolge Z (Anzahl der Spalten unbekannt). In die Konsole soll daraus ein Wert eingegeben werden den ich unter der Variablen WertA speichere. Nun möchte ich, dass wenn der WertA nicht einem Zahlenwert von Z entspricht, erneut eine AUfforderung zur Eingabe der angezeigten Z Werte erscheint. Das soll natürlich solange gehen, bis WertA gleich einer Zahl von Z entspricht. Mein Problem ist nun, dass sobald Z mehr Werte als zwei aufweist (also mehr als zwei Spalten besitzt), ich nicht weiß wie ich das machen soll.
Hier mal ein Beispiel für Z mit zwei Spalten, jedoch funktioniert das nicht mehr wenn Z mehr als zwei Spalten besitzt.
Code:
Z = [12]
Auswahlbereich = Z
prompt = 'Bitte wähle eine Zahl aus Z aus: ' ;
WertA = input(prompt);
if WertA == Z(1,1) || WertA == Z(1,size(Z,2))
WertA;
else while WertA < Z(1,1) || WertA< Z(1,size(Z,2)) || WertA > Z(1,1) || WertA > Z(1,size(Z,2))
Z
prompt2 = 'Zahl falsch, bitte gebe eine Zahl aus Z ein: ';
WertA = input(prompt2);
if WertA == Z(1,1) || WertA == Z(1,size(Z,2)) break end end end
Prinzipiell könnte man eine handvoll if Anweisungen mit der Bedingung if size(Z,2) == 1, elseif size(Z,2) == 2, elseif size(Z,2) == 3 ........ , und anschließend die oben stehende Routine entsprechend erweitern. Jedoch weiß ich nicht wie viel Zahlenwerte in Z stehen und somit ist dieser Ansatz auch begrenzt.
mir ist die Problemstellung absolut nicht klar. Um festzustellen, ob eine Zahl in einem Array enthalten ist, könnte man
ismember
verwenden. Dein Code spricht aber eher dafür, dass du Intervalle abtesten möchtest. Wie soll aber aus mehr als 2 Zahlen ein Intervall gebildet werden?
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.