|
|
Cell array in cell array löschen |
|
Soabon |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.12.2014, 13:02
Titel: Cell array in cell array löschen
|
 |
Hi! Seit einger Zeit probiere ich meinen Cell Vektor Arousal mit folgendem String Inhalt in zwei Cell Vektoren (Kommazahlen separat) aufzuteilen und es klappt einfach nicht.
Arousal =
'5.83(2.14)'
'6.52(1.94)'
'5.21(2.03)'
'5.59(2.23)'
Mit
A = regexp(Arousal,'(','split');
komme ich zu
A =
{1x2 cell}
{1x2 cell}
{1x2 cell}
{1x2 cell}
bzw.
A{1}
ans =
'5.83' '2.14)'
So ist es aber ein zweites cell array im cell array. Kann mir jemand helfen die zwei Zahlen zu "befreien"? Super wäre auch die zweite Klammer ")" dabei noch zu löschen.
|
|
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 18.12.2014, 13:15
Titel:
|
 |
Hallo,
bitte für das gegebene Beispiel genau das gewünschte Ergebnis angeben.
Viele Grüße,
Nras.
|
|
|
Soabon |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.12.2014, 13:24
Titel: Cell array in cell array löschen
|
 |
Klar, gerne. Es soll so aussehen:
Arousal1 =
'5.83'
'6.52'
'5.21'
'5.59'
Arousal2 =
'2.14'
'1.94'
'2.03'
'2.23'
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 18.12.2014, 13:43
Titel:
|
 |
Hallo,
na da bist du ja schon fast am Ziel. Noch eine Zwischenfrage, sollen das wirklich strings bleiben, oder lieber floats werden? Das könnte man nämlich in einem Schritt lösen, und würde das meiner Meinung nach auch einfacher machen.
Viele Grüße,
Nras
|
|
|
jurtsche |

Forum-Century
|
 |
Beiträge: 123
|
 |
|
 |
Anmeldedatum: 26.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.12.2014, 13:57
Titel:
|
 |
Sowas könnte Dir helfen:
bye
|
|
|
Soabon |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.12.2014, 14:18
Titel: Cell array in cell array löschen
|
 |
Hey, also gefühlt bin ich noch nicht soo nah dran ' '
Am Ende soll das ganze Teil einer größeren Matrix werden.
Ich wollte dafür verwenden
X = str2double(X)
Wenn ein floatingpoint Vektor auch in eine normale Matrix integriert werden kann, wäre es okay den String gleich umzuwandeln.
|
|
|
Soabon |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.12.2014, 14:25
Titel: Cell array in cell array löschen
|
 |
Hallo, der Vorschlag ist interessant, leider bekomme ich immer die Fehlermeldung...
Error using textscan
First input must be of type double or string.
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 18.12.2014, 14:26
Titel:
|
 |
Hallo,
ja, das geht sehr wohl. Ich würde soetwas vorschlagen:
Da du das Ergebnis sowieso in eine größere Matrix schreiben willst, würde ich auf das Erstellen der Vektoren Arousal1 und Arousal2 verzichten und das einfach in einer Matrix stehen lassen.
Mag sein, dass das alles effizienter geht, aber so sollte es gehen. Wenn man sicher ist, dass das Format immer gleich bleibt, also" Zahl1 mit 2 Nachkommastellen, (Zahl2 mit zwei Nachkommastellen)" kann man auch direkter was umwandeln (auch mit regexp), aber so erscheint es mir etwas robuster.
Viele Grüße,
Nras.
Edit: angemerkten Buchstabendreher beseitigt:
Zuletzt bearbeitet von Nras am 18.12.2014, 15:21, insgesamt 2-mal bearbeitet
|
|
|
Soabon |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.12.2014, 14:35
Titel: Cell array in cell array löschen
|
 |
Ganz vielen Dank! Super, klappt.
Das hat funktioniert, allerdings mit Buchstabendreher bei
A = vertact(tmp{:});
Die andere Lösung ging, wenn man die erste Zelle anwählt,
x = textscan(Arousal{1}','%f(%f)')
allerdings ist dann eben auch nur die erste Zelle verändert.
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 18.12.2014, 15:04
Titel:
|
 |
Ja, den Textscan-Befehl kann man vermutlich ähnlich in cellfun()-verpacken, oder eben eine Schleife drumbauen. Vielleicht irgendwie so:
Viele Grüße,
Nras.
|
|
|
jurtsche |

Forum-Century
|
 |
Beiträge: 123
|
 |
|
 |
Anmeldedatum: 26.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.12.2014, 10:23
Titel:
|
 |
Achso es ist eine Zelle...
Naja dann einfach:
LG
|
|
|
|
|
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 - 2025
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.
|
|