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

Intervall zwischen zwei "Markern"

 

Isy

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.11.2008, 18:22     Titel: Intervall zwischen zwei "Markern"
  Antworten mit Zitat      
Liebe Zielgruppe,

für Matlab-Power-User ist folgende Frage sicher kein Problem...

habe drei Vektoren z.b.

b1 = [ 0 0 0 0 1 4 0 0 0 0 10 0 0 3 0 0 10 0 0 0 0 4 0 10 0 0 1 ]

und

a1 = [ 70 30 50 0 ... 50 10 ]

v1 = [ 10 20 30 0 ... 20 10 ]

das Knifflige:

finde alle werte von a1 und v1 die zwischen b1==x und b1==10 intervallen liegen... (b1==x==4 "start des intervalls-marker", b1=="stop intervall marker") im obigen beispiel sind das 2 Intervalle für den Wer 4

kann da eins aushelfen?


dib0r
Forum-Guru

Forum-Guru


Beiträge: 413
Anmeldedatum: 09.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.11.2008, 19:22     Titel:
  Antworten mit Zitat      
Hallo,

kannst du das vielleicht anders formulieren bzw. die Ergebnisse für dieses Beispiel geben? Ansonsten hilft dir vielleicht schonmal
Code:
weiter.

MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
Isy

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.11.2008, 19:39     Titel:
  Antworten mit Zitat      
jau, mit find bin ich nicht wirklich weitergekommen

vielleicht hilft ein beispiel zur fragestellung

................|-------|.............|----------|
b1 = [ 0 1 4 0 0 10 0 0 0 0 4 0 0 0 10 0 ]
................|-------|.............|----------|
v1 = [ 1 2 3 4 5 60 7 3 3 3 5 2 2 2 50 0 ]
................|-------|.............|----------|
a1 = [ 9 8 7 6 4 90 9 7 7 7 6 3 7 7 30 0]
................|-------|.............|----------|
ich hätte gern folgendes als ergebnis

von v1 die werte 3,4,5,60 und 5,2,2,2,50
von a1 die werte 7,6,4,90 und 6,3,7,7,30

eben die werte, die als "start" markierung von b1 die '4' haben und als "ende" die '10'[
 
dib0r
Forum-Guru

Forum-Guru


Beiträge: 413
Anmeldedatum: 09.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.11.2008, 20:28     Titel:
  Antworten mit Zitat      
Hallo,

ja, jetzt hab auch ich es verstanden!

Was kannst du von deinem Vektor b1 voraussetzen? Können auch Zeichenketten wie z.B.
[0 4 0 4 1 10]
[0 10 ...]
[0 4 10 10 0 .. ]
vorkommen?

Falls dies nicht der Fall ist (d.h. du hast immer zuerst eine 4 und dann eine 10), geht es ganz einfach: mit find die 4en und die 10er suchen, dann hast du Start- und Endindizes von den Bereichen. Diese kannst du mit for-Schleifen dann auflösen.
Code:
% hole indizes
start_idx = find(b1==4);
ende_idx = find(b1==10);

for i=1:length(start_idx)
  % gebe elemente aus
  v1(start_idx(i):ende_idx(i))
  a1(start_idx(i):ende_idx(i))
end


MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
Isy

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.11.2008, 01:09     Titel:
  Antworten mit Zitat      
jau,

sieht nicht schlecht aus... irgendwas stimmt noch nicht ganz - bei meinen messdaten fällt hinten (ich teile die ergebnissmenge von den beiden "daten" vektoren durcheinander und errechne von den quotienten die StdAbweichung.... die ist allerdings permanent "0")

...ich glaube wir sind aber fast da...! =)
 
dib0r
Forum-Guru

Forum-Guru


Beiträge: 413
Anmeldedatum: 09.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.11.2008, 10:56     Titel:
  Antworten mit Zitat      
Hallo,

vermutlich teilst du diese Ergebnismengen nicht elementweise, sondern führst eine Matrixdivision durch. Dann erhälst du ein Skalar, und die Standardabweichung für ein Skalar ist 0.
Code:
% V = Ergebnismenge von v1, A von a1
quot = V./A;
std(quot)


MfG
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.