|
|
richtige Sequenz aufsummieren |
|
wgttzs! |
Forum-Fortgeschrittener
|
|
Beiträge: 62
|
|
|
|
Anmeldedatum: 02.12.21
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.02.2022, 19:23
Titel: richtige Sequenz aufsummieren
|
|
Hallo liebe Helfer,
folgendes:
Ich habe einen Vektor p, Sequenz seq, die ihre Punkte an der Stelle event findet, wenn folgende Sequenz [0 1] gefunden wird, dann soll punkt berechnet werden. Dafür müsst ich seq in event in finden und zum Beispiel zwischen den Punkten 156 293 in p aufsummieren-funktioniert aber irgendwie nicht. Und am Ende entsprechend mit numel durch die Anzahl teilen.
Kann mir irgendwer weiterhelfen?
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.484
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 17.02.2022, 21:38
Titel:
|
|
Hallo,
ich verstehe bei dieser Beschreibung nur Bahnhof. Es wäre hilfreich, wenn du z.B. für
p = 10*(1:432)
schreiben würdest, wie genau sich das Ergebnis zusammensetzen soll.
Zitat: |
gefunden_seq = strfind(seq,[0 1]); |
Das Ergebnis verwendest du ja nicht weiter. Geht es dir aber nicht genau darum?
Zitat: |
punkt=sum(p(event(seq(1)),1):p(event(seq(end)),1) )/numel(...); |
Spätestens wenn ein so unübersichtlicher Befehl nicht das macht, was er soll, dann würde ich das mal Teil für Teil auseinandernehmen um zu sehen, welcher Teil denn nicht wie gewünscht funktioniert.
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 ;)
|
|
|
wgttzs! |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 62
|
|
|
|
Anmeldedatum: 02.12.21
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.02.2022, 21:47
Titel:
|
|
Ungefähr so viel Bahnhof kommt auch raus wenn ich es einzeln mir anschaue.
Zitat: |
Zitat:
punkt=sum(p(event(seq(1)),1):p(event(seq(end)),1) )/numel(...);
Spätestens wenn ein so unübersichtlicher Befehl nicht das macht, was er soll, dann würde ich das mal Teil für Teil auseinandernehmen um zu sehen, welcher Teil denn nicht wie gewünscht funktioniert.
|
Ich versuchs nochmal, obwohl ich mir das auch schon irgendwie gedacht habe, was den Knoten in meinem Kopf beschreibt:
gefunden_seq sich mir die Sequenz 0 1 raus aus seq. event=[156 293 295]; gibt mir die Stellen an wo seq= [0 1 1]; gefunden wird. Jetzt versuche ich in p von der Stelle 156 und 293 auf zusummieren, weil an der Stelle genau meine 0(156) und meine 1(293) sich befindet
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.484
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 17.02.2022, 22:02
Titel:
|
|
Hallo,
Zitat: |
Ungefähr so viel Bahnhof kommt auch raus wenn ich es einzeln mir anschaue.
|
Hast du das denn wirklich mal gemacht? Die Code-Stücke aufgeteilt und dir in jedem einzelnen Schritt angesehen, an welcher Stelle nicht das gewünschte herauskommt? Wenn ja, dann teile doch bitte deine Erkenntnisse - also den neuen Code und an der problematischen Stelle wirklich genau, was du statt des erhaltenen Ergebnisses haben möchtest.
Aus der neuen Beschreibung werde ich nämlich leider auch nicht schlauer.
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 ;)
|
|
|
wgttzs! |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 62
|
|
|
|
Anmeldedatum: 02.12.21
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.02.2022, 23:03
Titel:
|
|
also punkt funtioniert so weit und ich bekomme 156 raus, aber mit lkj komme ich nicht auf 293, sondern auf 157
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.484
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 17.02.2022, 23:15
Titel:
|
|
Hallo,
Zitat: |
also punkt funtioniert so weit |
Das kann ich mir eigentlich nicht vorstellen, da in der Zeile 4 Klammern geöffnet und nur 3 geschlossen werden.
Zitat: |
aber mit lkj komme ich nicht auf 293 |
Ich komme da nur auf einen Fehler:
Array indices must be positive integers or logical values.
Das verwundert mich auch nicht, da seq(1) = 0.
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 ;)
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|