WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Stringfunktion mit zwei Parametern

 

matlabnoob40
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 26.02.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.02.2018, 15:32     Titel: Stringfunktion mit zwei Parametern
  Antworten mit Zitat      
Hallo,

ich muss folgende Aufgabe bearbeiten: Schreibe eine Matlab Funktion, die zählt wie oft ein als erster Parameter übergebenes Zeichen c in einer als zweitem Parameter übergebenen Zeichenkette s enthalten ist.

Mein Ansatz:

function anzahl = zaehle (c,s)
anzahl=0
for i=1:length(c);
if x(c) = x(s)
anzahl=anzahl+1
end
end
end

Ich wäre dankbar wenn jemand mir helfen könnte Smile

Zuletzt bearbeitet von matlabnoob40 am 26.02.2018, 16:33, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.02.2018, 15:37     Titel:
  Antworten mit Zitat      
Hallo,

und was funktioniert an deinem Ansatz nicht wie gewünscht?
Ich sehe zwei Probleme: du verwendest i nicht in der Schleife, und Testen auf Gleichheit ist ==.
Ich würde bei der Abfrage eher denken
Code:


... und length sollte sich doch auch eher auf s beziehen?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
matlabnoob40
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 26.02.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.02.2018, 15:42     Titel:
  Antworten mit Zitat      
Guten Tag Harald,

vielen Dank für deine Antwort!
Irgendwie läuft meine Schleife nicht fehlerfrei, es erscheint eine Fehlmeldung.

Ich habe die Schleife jetzt mit deinen Tipps modifiziert, allerdings hakt es immernoch:

function anzahl = zaehle (c,s)
anzahl=0
for i=1:length(c);
if s(i) == c
anzahl=anzahl+1
end
end
end
Private Nachricht senden Benutzer-Profile anzeigen
 
matlabnoob40
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 26.02.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.02.2018, 15:43     Titel:
  Antworten mit Zitat      
Sobald ich Zeichen und Zeichenkette als Parameter eingebe und die Funktion laufen lasse, erhalte ich kein Ergebnis.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.02.2018, 15:55     Titel:
  Antworten mit Zitat      
Hallo,

wie gesagt:
Zitat:
length sollte sich doch auch eher auf s beziehen?


Wenn du das anpasst und dann noch an den richtigen Stellen (im Editor orange unterlegt) Strichpunkte setzt, kommt z.B.
Code:
zaehle('s', 'es ist ein schöner Tag')
ans =
     3


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
matlabnoob40
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 26.02.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.02.2018, 16:08     Titel:
  Antworten mit Zitat      
Vielen Dank Harald, hat geklappt! Eine Frage hätte ich noch.
Und zwar habe ich einer Variablen eine Zeichenkette zugeordnet (neues Skript).

z.B.: u = Heute ist Montag

Ich würde nun gerne die eben definierte Funktion laden und laufen lassen.

u='Heute ist Montag'
zaehle('e', u);

Was mache ich hierbei falsch?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.02.2018, 16:14     Titel:
  Antworten mit Zitat      
Hallo,

den Strichpunkt weglassen und / oder das Ergebnis in eine Variable schreiben.

Code:
anz = zaehle('e', u)


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
matlabnoob40
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 26.02.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.02.2018, 16:21     Titel:
  Antworten mit Zitat      
Ich bedanke mich ganz herzlich bei dir Harald!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.