|
|
Stringfunktion ersetze----Hilfe |
|
Newbie25 |

Forum-Anfänger
|
 |
Beiträge: 13
|
 |
|
 |
Anmeldedatum: 17.08.18
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.08.2018, 13:24
Titel: Stringfunktion ersetze----Hilfe
|
 |
Hi,
irgendwie möchte diese Funktion nicht funktionieren könnte mir einer mal einen Rat geben.
function Zeichenkette = ersetze(c1,c2,c3,s)
for k=length(s)
if s(k)==c1&&c2
Zeichenkette=strrep(s,c1&&c2,c3);
end
end
end
Beschreibung: |
|
 Download |
Dateiname: |
ersetze.png |
Dateigröße: |
93.83 KB |
Heruntergeladen: |
245 mal |
|
|
|
|
|
J0nas |

Forum-Century
|
 |
Beiträge: 208
|
 |
|
 |
Anmeldedatum: 10.09.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab 2016a
|
 |
|
|
 |
|
Verfasst am: 18.08.2018, 15:29
Titel:
|
 |
Hi,
Strings werden in Matlab nicht mit "&&" zusammengefügt, sondern mit
Bei deiner If-Abfrage willst du einen Buchstaben von s mit mindestens 2 Buchstaben vergleichen? Die Bedingung wird nie wahr.
Da musst du dann schon
machen und die Schleife nicht bis zu length(s) durchlaufen lassen sondern bis
Aber schau dir mal
strfind
an, damit machst du dir das Leben deutlich einfacher. Da brauchst du dann auch keine Schleife.
Grüße
Jonas
_________________
1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
Zuletzt bearbeitet von J0nas am 18.08.2018, 16:36, insgesamt einmal bearbeitet
|
|
|
matlabgo |

Forum-Anfänger
|
 |
Beiträge: 48
|
 |
|
 |
Anmeldedatum: 16.08.18
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.08.2018, 15:56
Titel:
|
 |
bin grad auch an der Aufgabe dran,
Wie kann ich in die Schleife reinschreiben dass nur die gefundenen Strings, setzten werden sollen?
|
|
|
J0nas |

Forum-Century
|
 |
Beiträge: 208
|
 |
|
 |
Anmeldedatum: 10.09.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab 2016a
|
 |
|
|
 |
|
Verfasst am: 18.08.2018, 16:01
Titel:
|
 |
Hi matlabgo,
mit
strfind
findest du doch alle Übereinstimmungen. Du kannst aber auch über
strrep
gleich alle ersetzen und die Schleife einfach weglassen.
Grüße
Jonas
PS: Was sind das denn jetzt eigentlich für Aufgaben? Hausaufgaben? Prüfungen? Oder einfache Übungsaufgaben?
_________________
1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
Zuletzt bearbeitet von J0nas am 18.08.2018, 16:19, insgesamt einmal bearbeitet
|
|
|
matlabgo |

Forum-Anfänger
|
 |
Beiträge: 48
|
 |
|
 |
Anmeldedatum: 16.08.18
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.08.2018, 16:14
Titel:
|
 |
hab es immer noch nicht ganz verstanden.
in dem Falle wäre c = 2 19 also zwei Werte
aber wie kann ich beide einsetzen?
PS: es sind Übungsaufgaben für eine Klausur
|
|
|
J0nas |

Forum-Century
|
 |
Beiträge: 208
|
 |
|
 |
Anmeldedatum: 10.09.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab 2016a
|
 |
|
|
 |
|
Verfasst am: 18.08.2018, 16:22
Titel:
|
 |
Hi,
ohne Schleife einfach nur
strrep
verwenden:
Und grade hab ich die Aufgabenstellung voll zu Ende gelesen. Und gesehen, dass nur ein Buchstabe ersetzt werden soll. Dann funktioniert das doch nicht einfach nur mit strrep.
Eine Möglichkeit wäre dann die hier:
Grüße
Jonas
_________________
1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
Zuletzt bearbeitet von J0nas am 18.08.2018, 16:28, insgesamt einmal bearbeitet
|
|
|
Newbie25 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 13
|
 |
|
 |
Anmeldedatum: 17.08.18
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.08.2018, 16:27
Titel:
|
 |
Also laut Aufgabenstellung soll bei aufeinanderfolgenden c1 und c2.
Das c1 durch das c3 ersetzt werden.
function Zeichenkette = ersetze(c1,c2,c3,s)
for k=1:length(s)
if s(k)==[c1 c2] %% hier ist ein formeller Fehler ansonsten würde die Funktion ins Laufen kommen
Zeichenkette=strrep(s,c1,c3) ;
end
end
end
|
|
|
J0nas |

Forum-Century
|
 |
Beiträge: 208
|
 |
|
 |
Anmeldedatum: 10.09.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab 2016a
|
 |
|
|
 |
|
Verfasst am: 18.08.2018, 16:36
Titel:
|
 |
Wie gesagt, du vergleichst einen String der Länge 1 mit einem String der Länge 2 oder länger. Du musst dann schon dein s anpassen, so dass er die gleiche Länge wie [c1 c2] hat:
Wobei String-Vergleiche über == durchzuführen eher unsauber ist. Dafür nutzt man
strcmp
.
Aber auch dann stimmt der Code nicht, weil er dann jedes Mal wenn die Bedingung stimmt alle Strings c1 in s durch c3 ersetzt. Ein funktionierendes Beispiel hab ich euch im vorherigen Post gepostet.
Grüße
Jonas
_________________
1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
|
|
|
matlabgo |

Forum-Anfänger
|
 |
Beiträge: 48
|
 |
|
 |
Anmeldedatum: 16.08.18
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.08.2018, 16:38
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 - 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.
|
|