|
|
Alle Elemente einer Zelle mit Wert eines Vektors addieren |
|
AliKoptar |
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 19.10.21
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.10.2021, 16:09
Titel: Alle Elemente einer Zelle mit Wert eines Vektors addieren
|
|
Hallo liebe Matlab-Profis,
mein Problem ist folgendes: Ich habe einen großen Vektor in mehrere Abschnitte unterteilt und diese Abschnitte mit mat2cell in unterschiedliche Zellen gepackt. Jetzt möchte ich alle Werte in einer Zelle mit einer bestimmten Zahl addieren. Die jeweiligen Summanden sind in einem Vektor hinterlegt, der so viele Zeilen hat, wie es Zellen gibt.
Also beispielsweise habe ich 3 Zellen und dazu einen Vektor mit 3 Zeilen und alle Elemente der ersten Zelle sollen mit der Zahl aus der ersten Zeile des Vektors addiert werden, die zweite Zelle mit der 2. Zahl des Vektors, ...
Über jede Hilfe bin ich sehr dankbar.
Viele Grüße
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 19.10.2021, 16:27
Titel:
|
|
Hallo,
ich würde es mit einer for-Schleife oder mit cellfun versuchen.
Solltest du schon etwas versucht haben, bitte die bisherigen Versuche posten und welche Probleme dabei aufgetreten sind.
Wenn du Beispieldaten als .mat-Datei anhängen kannst, ist das auch immer klarer als eine Beschreibung. Vor allem kann man anhand der Beispieldaten eventuelle Vorschläge direkt ausprobieren.
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 ;)
|
|
|
AliKoptar |
Themenstarter
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 19.10.21
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.10.2021, 17:32
Titel:
|
|
Hallo Harald,
vielen Dank für deine Antwort. Dass etwas Code hilfreich sein kann, dachte ich mir fast. Allerdings wollte ich damit nicht unnötig verwirren. Ich versuche es dennoch:
Das Ziel ist es, phi_kappa_2 zu zerschneiden und neu zusammenzusetzen.
Diese Lösung funktioniert (das neu-Zusammensetzen von phi_kappa_2), ist aber nicht auf andere Probleme übertragbar. Wenn beispielsweise in 2 oder 4 oder 5 Abschnitte unterteilt werden soll.
Deshalb die Frage, ob ich meine Zellen (in denen die Kurvenabschnitte drin stecken) mit einem Verschiebungsvektor addieren kann (teilweise angedeutet mit y_join)
Viele Grüße
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 19.10.2021, 20:57
Titel:
|
|
|
|
|
Hallo,
Soll p_123 das "neu zusammengesetzte phi_kappa_2" sein? Dann sollte das auch aus dem Variablennamen hervorgehen.
Auch ist mir das Muster, nach dem die einzelnen Teile gebildet werden sollen, nicht klar. Einmal kommt y_join(2) vor, einmal p_12(end). Der erste Teil scheint auch gar nicht dem Muster der folgenden zu folgen?
Schreib doch mal p_1 bis p_3 und eventuell noch ein p_4 so hin, dass das Muster klar wird. Ich würde stattdessen übrigens ein Cell Array verwenden, dann kannst du das mit
vertcat(p{:}) leicht zusammenfügen.
Zitat: |
Deshalb die Frage, ob ich meine Zellen (in denen die Kurvenabschnitte drin stecken) mit einem Verschiebungsvektor addieren kann (teilweise angedeutet mit y_join) |
Die Antwort bleibt die gleiche: cellfun oder eine for-Schleife. Für beides muss jedoch klar sein, nach welchem Muster vorgegangen werden soll. Dieses Muster kann ich noch nicht erkennen.
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 ;)
|
|
|
AliKoptar |
Themenstarter
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 19.10.21
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.10.2021, 10:19
Titel:
|
|
Hallo Harald, du hast natürlich recht.
Die Benennung ist unsauber und das Schema ist nicht so gut erkennbar. Deshalb hier noch eine überarbeitete Version des Zusammensetzens, ohne den Versuch einen Verschiebungvektor y_join zu nutzen:
Das Muster ist hoffentlich nun besser erkennbar.
Das Problem hierbei: es ist nicht universell anwendbar, sondern muss immer angepasst werden, je nachdem wie viele Abschnitte zustande kommen. Deshalb wäre mir etwas 'automatisches' lieber, wie zum Beispiel ein Array (y_join) das ich automatisch auf die Inhalte der einzelnen Zellen aufaddieren kann.
Viele Grüße
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 20.10.2021, 11:11
Titel:
|
|
Hallo,
das verstehe ich deutlich besser. Ich würde es so angehen:
Ich gehe hier davon aus, dass die Anzahl der Abschnitte die Anzahl der Elemente von phi_kappa_2_cut ist. Falls nicht, muss man das noch anpassen.
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 ;)
|
|
|
AliKoptar |
Themenstarter
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 19.10.21
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.10.2021, 12:07
Titel:
|
|
Vielen Dank. Das funktioniert wunderbar, auch wenn jetzt die Überschrift nicht mehr so richtig dazu passt
Hast du eventuell noch eine gute Idee, wie ich die kleinen Stufen aus meiner Kurve herausbekomme? Also dass beispielsweise der erste Punkt von Abschnitt 2 den letzten Punkt von Abschnitt 1 überschreibt. Die Gesamtlänge des Arrays wird damit zwar kleiner, aber es würde mit dennoch sehr helfen eine glatte Kurve zu bekommen.
Viele Grüße
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 20.10.2021, 13:23
Titel:
|
|
Hallo,
z.B.
Alternativ bereits beim Erstellen der Teilstücke je nachdem das letzte oder erste Element (wenn sie gleich bzw. sehr nah beieinander sind, ist das ja egal) entfernen.
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 ;)
|
|
|
AliKoptar |
Themenstarter
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 19.10.21
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.10.2021, 16:44
Titel:
|
|
|
|
|
|
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.
|
|