|
|
Elemente in Zelle bearbeiten / =0 setzen? |
|
Zacken |

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 19.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.06.2011, 15:49
Titel: Elemente in Zelle bearbeiten / =0 setzen?
|
 |
Hallo Leute,
ersteinmal ein großes Lob für das Forum, habe schon viel Hilfe lesen können und mich endlich einmal angemeldet.
Leider habe ich gleich eine Frage:
Ich habe mir eine 27x5 Cell berechnet (wobei die 5 variabel ist). Nun möchte ich die Erste Zeile durchsuchen und alle Werte kleiner als z.B. 30 gleich Null setzen.
Mit einer if-schleife weiß ich leider keine praktikable Lösung.
Die andere Möglichkeit mit find(A(1, <30) klappt hier ebenfalls nicht da es sich um eine Zelle handelt oder?
Hat jemand vielleicht einen Hinweis wie ich vorgehen könnte?
Vielen Dank schon einmal und einen schönen Sonntag!
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 19.06.2011, 16:02
Titel:
|
 |
Hallo,
wenn alle Elemente Doubles sind, bietet es sich an, auch mit einer Double-Matrix zu arbeiten. Umwandlung mit CELL2MAT.
Dann geht auch logische Indizierung (find brauchst du nicht).
Wenn es ein Cell Array bleiben soll, kannst du mit CELLFUN arbeiten.
Grüße,
Harald
|
|
|
Zacken |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 19.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.06.2011, 16:04
Titel:
|
 |
danke für den tipp!
muss leider ein Cell Array für die weiteren Berechnungen bleiben sonst hätt ich es vermutlich schon anders probiert.
Aber cellfun sieht in der hilfe ganz vielversprechend aus!
Vielen Dank
Grüße
Flo
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 19.06.2011, 16:14
Titel: Re: Elemente in Zelle bearbeiten / =0 setzen?
|
 |
Hallo Zacken,
Zitat: |
Ich habe mir eine 27x5 Cell berechnet (wobei die 5 variabel ist). Nun möchte ich die Erste Zeile durchsuchen und alle Werte kleiner als z.B. 30 gleich Null setzen. |
Das geht zwar auch per CELLFUN. Ein FOR-Schleifen-Ansatz ist aber einfacher:
Gruß, Jan
|
|
|
Zacken |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 19.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.06.2011, 18:08
Titel:
|
 |
Hallo Jan,
tausend Dank funktioniert super mit der Schleife!
Hab leider im nachhinein festgestellt es reicht für die folgende Berechnung nicht aus die Werte gleich 0 zu setzen, sondern ich müsste die gesammte Spalte herauslöschen, falls der erste eintrag einer spalte kleiner als bsp. 30 ist...
hast du vielleicht auch hierfür so eine klasse lösung?
Vielen Dank
Grüße
Zacken
|
|
|
Martin1986 |

Forum-Century
|
 |
Beiträge: 121
|
 |
|
 |
Anmeldedatum: 20.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: Win 2016b Linux 2016b
|
 |
|
|
 |
|
Verfasst am: 20.06.2011, 18:41
Titel:
|
 |
damit bekommst du alle C die größer als 0.5 sind... meintest du das???
|
|
|
Zacken |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 19.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.06.2011, 19:24
Titel:
|
 |
nein leider nicht ganz;)
meine matrix sieht beispielsweise so aus:
nun müssten aber alle Spalten die im ersten eintrag einen wert kleiner 30 haben verschwinden, so dass die neue matrix so aussieht:
|
|
|
Martin1986 |

Forum-Century
|
 |
Beiträge: 121
|
 |
|
 |
Anmeldedatum: 20.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: Win 2016b Linux 2016b
|
 |
|
|
 |
|
Verfasst am: 20.06.2011, 19:52
Titel:
|
 |
Achso dann würde ich das so machen....
im Klartext gucke ich welche spalten in der ersten Reihe größer als 30 sind und schreibe ich diese in die neue Variable
|
|
|
Zacken |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 19.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.06.2011, 20:38
Titel:
|
 |
ja genial! danke!!!
und so einfach, hätt ich eigentlich fast selber drauf kommen müssen;)
|
|
|
Zacken |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 19.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.06.2011, 12:38
Titel:
|
 |
und schon taucht das nächste problem auf.
für das löschen der spalten wurde die cell ja in ein mat file umgewandelt.
bräuchte aber am ende wieder ein cell um fortzufahren:(
|
|
|
DSP |

Forum-Meister
|
 |
Beiträge: 2.117
|
 |
|
 |
Anmeldedatum: 28.02.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014b
|
 |
|
|
 |
|
Verfasst am: 21.06.2011, 13:34
Titel:
|
 |
gibt's doch auch ungekehrt...z.B.
|
|
|
Martin1986 |

Forum-Century
|
 |
Beiträge: 121
|
 |
|
 |
Anmeldedatum: 20.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: Win 2016b Linux 2016b
|
 |
|
|
 |
|
Verfasst am: 21.06.2011, 16:03
Titel:
|
 |
o.O eigentlich ist newC immer noch eine cell o.O da ich das cell2mat nur für die Indexangabe nutze
|
|
|
|
|
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.
|
|