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

Vektorbereich auschließen.

 

McLabb
Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 03.09.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.10.2018, 17:48     Titel: Vektorbereich auschließen.
  Antworten mit Zitat      
Hallo,

is es möglich einen Vektorbereich ausschlißen?
Also zum Beispiel ein Vektor ist gegeben.
Code:
a=[1,2,3,4,5,6,7,8,9,10]


Könnte man es so schreiben, dass es diese Struktur hat ?
Code:
a(1:10, außer 4, 5)
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.449
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.10.2018, 17:57     Titel:
  Antworten mit Zitat      
Hallo,

wenn ich das richtig interpretiere:
Code:
a(setdiff(1:10, 4:5))   % oder
a(setdiff(1:10, [4, 5]))

oder auch
Code:
a = setdiff(1:10, 4:5) % oder
a = setdiff(1:10, [4, 5])  


Falls das nicht weiterhilft, bitte erklären, was du mit der Syntax beabsichtigst.

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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
McLabb
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 03.09.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.10.2018, 19:30     Titel:
  Antworten mit Zitat      
Also ich wollte das als Bedienung für eine Zustandsmachine einbauen:

Habe einen Vektor mit 1000 Werten.

Der Zustandwechsel soll eintreffen bei 494<Wert<631.
Code:
vektor(494:631)

Sonst findet der andere Wechsel statt.

Daher war die Idee die Werte 494 bis 631 auszuschließen.

Vielleicht kann man es auch besser machen
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.449
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.10.2018, 20:16     Titel:
  Antworten mit Zitat      
Hallo,

willst du nun
a) Elemente an bestimmten Stellen ausschließen (Vorschläge s.u.) oder
b) Elemente, die bestimmte Werte annehmen?
Das wäre dann eher
Code:
vektor(vektor < 494 & vektor > 631)


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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
McLabb
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 03.09.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.10.2018, 09:22     Titel:
  Antworten mit Zitat      
Also Matlab gibt mir folgendes aus:

Code:
ans =

  0×1 empty double column vector
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.449
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.10.2018, 09:39     Titel:
  Antworten mit Zitat      
Hallo,

das ist wohl nicht das, was du willst. Fragen sind nur: was lässt du laufen, mit welchen Daten, und welches Ergebnis erwartest du?

Ich kann mir nicht vorstellen, dass das gewünschte sonderlich kompliziert zu erreichen ist. Mir ist nur immer noch nicht klar, was du eigentlich willst - siehe die Frage in meiner vorherigen Antwort.

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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
McLabb
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 03.09.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.10.2018, 12:11     Titel:
  Antworten mit Zitat      
Also folgendes habe ich vor:

ich baue ein Stateflow, also eine Zustandsmachine. Es gibt zwei Zustände: A und B.
Habe auch eine Spalte an Daten von 1 bis 1000, das sind die Zeitpunkte.
Der Wechsel findet statt von A nach B zum Zeitpunkt 494,
Code:
vektor(494)
und dauert bis zum Zeitpunkt 631.
Der andere Zustand liegt zu den Zeitpunkten 1 bis 494 und von 632 bis 1000 vor.
Bin die ganze Zeit am Probieren wie man das formulieren kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.449
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.10.2018, 12:22     Titel:
  Antworten mit Zitat      
Hallo,

mit Stateflow kenne ich mich nicht aus.

Wenn es um eine MATLAB-Frage geht, helfe ich gerne weiter. Dazu bräuchte ich aber Antworten auf die Fragen aus den vorhergehenden Beiträgen.

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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
McLabb
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 03.09.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.10.2018, 11:04     Titel:
  Antworten mit Zitat      
Ja im Bereich Stateflow habe ich eine ähnliche Frage schon gestellt, die wurde nicht beantwortet.


Also die Elemente stimmen mit den Stellen überein. Heißt zum Beispiel das Element 500 befindet sich auch in der Zeile 500, weil es Werte von 1 bis 1000 sind, mit einer Schrittweite von 1

Bin mir nicht sicher, ob Auschließen hier der richtige Ausdruck ist.

Geht einfach nur darum die Werte :
a) zwischen 494 und 631.
b) Werte kleiner als als 494 und größer als 631.

Bestimmte Werte passt hier wohl besser denke ich.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.449
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.10.2018, 12:29     Titel:
  Antworten mit Zitat      
Hallo,

Code:
vektor = 1:1000;
outside = vektor(vektor < 494 | vektor > 631);
inside = vektor(vektor > 494 & vektor < 631);


Vorhin hatte sich ein Fehler in der Bedingung eingeschlichen.
Ggf. noch strenge Ungleichungen durch schwache ersetzen.

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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
McLabb
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 03.09.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.10.2018, 17:57     Titel:
  Antworten mit Zitat      
Perfekt!

Danke, Harald.
Genau danach habe ich gesucht Smile
Kann jetzt endlich mal in Ruhe schlafen Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

wenn ich eher gewusst hätte, was du willst...
Vor allem, den einen Teil davon hat mein Vorschlag von 05.10.2018, 17:57 ja schon geliefert. Und der andere ist ja eigentlich der einfachere. Da geht auch einfach 494:631.

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 ;)
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 - 2024 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.