|
|
Spaltenweise nach gewissen Einträgen/Werten suchen/aufzähl |
|
SvenMiller |
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 01.07.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.08.2020, 13:33
Titel: Spaltenweise nach gewissen Einträgen/Werten suchen/aufzähl
|
|
Hallo zusammen,
ich bin neu und habe eine kurze Frage.
Ich habe eine Matlab Datei double mit 50x10 Werten.
Diese Tabelle/Datei enthält Zahlenwerte von 0 bis 3 und ich möchte immer wenn spaltenweise hintereinander die gleiche Zahl (hier 3) vorkommt diese Anzahl in einer neuen Tabelle speichern/ausgeben.
Beispielhaft anhand einer der 10 Spalten:
0 Ausgabe: 0 in neuer "Tabelle"
0 0
1 0
2 0
3 0
3 0
3 3 (da 3 mal die 3 zsmhängend vorkam)
2 0
2 0
0 0
0 0
3 0
3 2
0 0
0 0
3 1
0 0 usw.
Ich hoffe mein Anliegen ist verständlich und bitte meine Ausdrucksweise zu entschuldigen, bin neu bei Matlab.
Vielen Dank im voraus und liebe Grüße,
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 14.08.2020, 09:33
Titel:
|
|
Hallo,
Dies würde ich dann nochmal in einer for-Schleife auf alle Spalten anwenden.
Ich will nicht ausschließen, dass es effizienter geht, aber bei einer Matrix dieser Größe sollte das vernachlässigbar sein.
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 ;)
|
|
|
SvenMiller |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 01.07.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.08.2020, 11:34
Titel:
|
|
Hallo,
vielen vielen Dank für die Hilfe. Wenn ich Ihren Code kopiere und in Matlab laufen lasse funktioniert er einwandfrei.
Sobald ich allerdings statt M meine Ausgangsdaten eingebe erhalte ich folgenden Fehler:
"Unable to perform assignment because the left and right sides have a different number of elements."
Hilft es wenn ich die vorliegende Matlab Datei double mit 50x10 Werten so verändere, dass sie nur noch 0 und 1 enthält anstatt 0/1/2 und 3? Die Zahl 1 wird somit jedes mal geschrieben anstatt einer 3 und sonst nur 0, da ja die anderen Zahlen irrelevant sind für meine Aufzählung.
Programmgeschwindigkeit sind für mich irrelevant, wünschenswert waäre allerdings dass es auch mit anderen Tabellengrößen funktioniert (zB 15000x28).
Vielen Dank im voraus
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 14.08.2020, 11:48
Titel:
|
|
|
|
|
Hallo,
Zitat: |
Sobald ich allerdings statt M meine Ausgangsdaten eingebe erhalte ich folgenden Fehler: "Unable to perform assignment because the left and right sides have a different number of elements." |
Wenn ich deinen Code ausführe, läuft er fehlerfrei durch. Allerdings ist das so nicht sinnvoll, da ich davon ausging, dass M die Daten in der ersten Spalte und das Ergebnis in der zweiten Spalte enthält. Ziel war es für mich, out2 so zu konstruieren, dass es mit out1 übereinstimmt.
Wie gesagt solltest du bei einer Datenmatrix mit mehreren Spalten eine for-Schleife über diese Spalten schreiben.
Zitat: |
Hilft es wenn ich die vorliegende Matlab Datei double mit 50x10 Werten so verändere, dass sie nur noch 0 und 1 enthält anstatt 0/1/2 und 3? Die Zahl 1 wird somit jedes mal geschrieben anstatt einer 3 und sonst nur 0, da ja die anderen Zahlen irrelevant sind für meine Aufzählung. |
Das ist vollkommen egal.
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 ;)
|
|
|
SvenMiller |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 01.07.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.08.2020, 11:48
Titel:
|
|
Die Tabelle mit 0 und 1 funktioniert leider auch nur wenn ich es mit dem Code von Ihnen eingebe.. leider nimmt er meine Ausgangstabelle wieder nicht an, selbiger Fehler: "Unable to perform assignment because the left and right sides have a different number of elements."
Sowohl M als auch meine Tabelle ist vom Typ Double.
|
|
|
SvenMiller |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 01.07.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.08.2020, 11:52
Titel:
|
|
"Wenn ich deinen Code ausführe, läuft er fehlerfrei durch. Allerdings ist das so nicht sinnvoll, da ich davon ausging, dass M die Daten in der ersten Spalte und das Ergebnis in der zweiten Spalte enthält. Ziel war es für mich, out2 so zu konstruieren, dass es mit out1 übereinstimmt.
Wie gesagt solltest du bei einer Datenmatrix mit mehreren Spalten eine for-Schleife über diese Spalten schreiben."
Vielen Dank, ich wollte es bevor ich die Schleife implementiere erstmal ohne Schleife anhand einer einzelnen Spalte testen. Die auszugebenden Zählwerte sollen idealerweise in einer neuen Tabelle ausgegeben werden, nicht in M.
Vielen Dank im voraus und viele Grüße,
|
|
|
SvenMiller |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 01.07.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.08.2020, 12:06
Titel:
|
|
Folgender Code geht eben nicht:
Unable to perform assignment because the left and right sides have a different number of elements.
Gibt er als Fehler aus...
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 14.08.2020, 12:24
Titel:
|
|
Hallo,
ja, bei diesem Datenbeispiel geht der Code nicht. Abhilfe:
Ich hatte nicht berücksichtigt, dass die Daten ja auch mit einem 3er- bzw. 1er-Block beginnen können.
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 ;)
|
|
|
SvenMiller |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 01.07.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.08.2020, 15:54
Titel:
|
|
Spitze, vielen vielen Dank für die sehr gute Hilfe.
Hat mit dem Code inkl Schleife geklappt:
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 15.08.2020, 14:21
Titel: Re: Spaltenweise nach gewissen Einträgen/Werten suchen/aufz
|
|
|
|
SvenMiller |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 01.07.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.08.2020, 10:19
Titel:
|
|
Vielen Dank für den Hinweis, versuche ich zukünftig.
|
|
|
|
|
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.
|
|