Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

Modellbildung und Simulation dynamischer Systeme

Studierende:
weitere Angebote

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Intervalle Vektor bilden

 

fburger
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 08.07.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.07.2022, 17:49     Titel: Intervalle Vektor bilden
  Antworten mit Zitat      
Ich habe folgendes Problem. Ich möchte einen Vektor in verschiedene Intervalle unterteilen. Die Schrittweite des Intervalls ist immer gleich, allerdings sind in den einzelnen Intervallen unterschiedlich viele Einträge.
Code:

x=5;
i=1;
u(1)=0;
o(1)=x;
 wertebereich=zeros(6,length(pv_2));
 condition=zeros(length(pv_2),6);
 temp=zeros(6,length(pv_2));
while i<=6
 u(i+1)=o(i)+0.00001;
 o(i+1)=o(i)+x;
 condition= pv_2 >= u(i) & pv_2 <= o(i);
end
 


Hat jemand eine simplere Lösung?
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

mir ist nicht klar, was du genau erreichen möchtest. "condition" wird ja in jeder Iteration überschrieben. Ist das Endergebnis also o und u?
An sich klingt die Frage, als ob histcounts hilfreich wäre.

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
 
fburger
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 08.07.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.07.2022, 15:45     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

mir ist nicht klar, was du genau erreichen möchtest. "condition" wird ja in jeder Iteration überschrieben. Ist das Endergebnis also o und u?
An sich klingt die Frage, als ob histcounts hilfreich wäre.

Grüße,
Harald


o steht für die obere Grenze des Intervalls und u für die untere Grenze.
histcounts probiere ich gleich mal aus, danke!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

Zitat:
o steht für die obere Grenze des Intervalls und u für die untere Grenze.

Ja, das habe ich auch erraten. Nur stellt sich mir eben die Frage, ob das das Endergebnis sein soll? Und wenn nicht das, was dann?

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
 
fburger
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 08.07.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.07.2022, 20:58     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

Zitat:
o steht für die obere Grenze des Intervalls und u für die untere Grenze.

Ja, das habe ich auch erraten. Nur stellt sich mir eben die Frage, ob das das Endergebnis sein soll? Und wenn nicht das, was dann?

Grüße,
Harald


Endergebnis sind u und o nicht direkt. Sie sollen jeweils die Intervallgrenzen enthalten, mit denen der Vektor dann in die einzelnen Intervall aufgesplittet wird.
histcounts hab übrigens funktioniert Smile
Jetzt muss ich nur noch die einzelnen Intervalle als Vektoren ausgeben lassen
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.044
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.07.2022, 21:08     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Endergebnis sind u und o nicht direkt. Sie sollen jeweils die Intervallgrenzen enthalten, mit denen der Vektor dann in die einzelnen Intervall aufgesplittet wird.

Wenn das nicht das Endergebnis ist, was ist es denn dann? Diese Aufsplittung? Und was meinst du genau damit? Wieviele Werte in welchem Intervall sind? Oder welche Werte in welchem Intervall sind?

Zitat:
Jetzt muss ich nur noch die einzelnen Intervalle als Vektoren ausgeben lassen

Mir ist leider nicht klar, was du damit meinst.

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
 
fburger
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 08.07.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.07.2022, 22:37     Titel:
  Antworten mit Zitat      
Zitat:
Jetzt muss ich nur noch die einzelnen Intervalle als Vektoren ausgeben lassen

Mir ist leider nicht klar, was du damit meinst.

Grüße,
Harald[/quote]

Meine Daten liegen in den pv_2 Vektor vor. Das Bilden der Intervalle hat funktioniert und die ich habe auch die Info, wie viele Zeilen zu dem jeweiligen Intervall gehören. Nun möchte ich noch die Daten von pv_2 den einzelnen Intervallen zuweisen und ausgeben.

Danke im Voraus!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

wenn ich die Frage richtig verstehe, brauchst du dir dazu nur das dritte Argument von histcounts zurückgeben lassen.

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
 
fburger
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 08.07.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2022, 12:43     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

wenn ich die Frage richtig verstehe, brauchst du dir dazu nur das dritte Argument von histcounts zurückgeben lassen.

Grüße,
Harald


Noch ein letztes Mal brauchte ich deine Hilfe Smile
[N,edges,ind]=histcounts(pv_2,'BinWidth',5) habe ich eingeben. ind weist den Einträgen von dem pv_2-Vektor das jeweilige Intervall zu. Wie kann ich mir die einzelnen Intervalle mit ind=1,2 usw ausgeben lassen.
Wäre super wenn du noch einmal helfen könntest!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.044
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.07.2022, 15:11     Titel:
  Antworten mit Zitat      
Hallo,

du hast ja den Output edges. Das sind die Intervallgrenzen. Bis auf den ersten und letzten Eintrag ist das immer die rechte Grenzen eines Intervalls und die linke Grenze des Intervalls daneben. Also:
Code:
leftEdges = edges(1:end-1);
rightEdges = edges(2:end);


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
 
fburger
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 08.07.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2022, 15:58     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

du hast ja den Output edges. Das sind die Intervallgrenzen. Bis auf den ersten und letzten Eintrag ist das immer die rechte Grenzen eines Intervalls und die linke Grenze des Intervalls daneben. Also:
Code:
leftEdges = edges(1:end-1);
rightEdges = edges(2:end);


Grüße,
Harald


Danke Harald!
Wie bekomme ich die dazugehörigen Werte von dem pv_2-Vektor ausgegeben?
Habe es mit
Code:
% a=find(ind==1) und dann intervall_1=pv_2(a);

gemacht? Gibt es noch eine bessere Lösung?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

find ist nicht nötig:
Code:
intervall_1=pv_2(ind == 1);


Wenn du das für alle Intervalle machen möchtest, würde ich for und ein Cell Array empfehlen:
Code:
for k = 1:max(ind)
intervall{k}=pv_2(ind == k);
end


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
 
fburger
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 08.07.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2022, 16:20     Titel:
  Antworten mit Zitat      
Vielen Dank Harald!!
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2022 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.