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

Buchstaben in Funtkion zählen!!!! bitte um schnelle Hilfe!

 

matlabtogo
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 13.09.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2016, 13:37     Titel: Buchstaben in Funtkion zählen!!!! bitte um schnelle Hilfe!
  Antworten mit Zitat      
Hi Leute, hab n Problem: die aufgabenstellung lautet buchstaben eines Arrays in einer funktion zu zählen und dabei die doppelt vorkommenden buchstaben unberücksichtigt zu lassen!
bin nur soweit, das ich 2 schleifen benutzen muss, die die einzelnen buchstaben vergleichen müssen...
kann mir einer damit unter die arme greifen, brauche schnell Hilfe, schreibe morgen die Klausur!!
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.09.2016, 13:47     Titel:
  Antworten mit Zitat      
Hallo,

Code:


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

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 13.09.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2016, 14:21     Titel:
  Antworten mit Zitat      
danke erstmal @Harald für deine Antwort,
ich glaube aber nicht das ich so eine matlab-Funktion benutzen darf.
Muss das glaub ich richtig mit schleifen programmieren, könntest du mir damit weiterhelfen?
Private Nachricht senden Benutzer-Profile anzeigen
 
matlabtogo
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 13.09.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2016, 14:51     Titel:
  Antworten mit Zitat      
Code:
function [c ] = buchstabenZaehlen( a )

count=0;

for i=1:length(a)
    for j=1:length(a)
        if a(i)== a(j)
           count= count+1;
        else
            count=0;
        end
    end
end
if count <2
    c= length(a);
elseif count >2
    c= length(a)-count;
end
end

 



das habe ich bisher!! liefert aber falsches Ergebnis
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 13.09.2016, 15:09     Titel:
  Antworten mit Zitat      
In Prinzip muss du dir die Buchstaben nachdem Vergleich merken, welche du
gezählt hast z.B in einem Array

Mögliche Lösung:
Code:

dein_array = 'gomatlab';
% array initialisieren  
is_letter_counted = zeros(1, double('z')-double('a')+1);


count = 0;
for k = 1:length(dein_array)
     letter  = dein_array(k);
     pos = double('z')-double(letter) + 1;
     if ~is_letter_counted(pos)
         count = count + 1;
         is_letter_counted(pos) = 1;
     end
end

fprintf('Es sind %d Buchstaben\n', count)
Private Nachricht senden Benutzer-Profile anzeigen
 
matlabtogo
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 13.09.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2016, 15:27     Titel:
  Antworten mit Zitat      
Danke für die Lösung´, steige noch nicht ganz hinter, liegt sicherlich auch daran das ich noch nicht wikrlich fit in matlab bin...
aber ich werd nochmal versuchen das zu verstehen, vielen Dank!!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

was eine "richtige" Programmierung ist, ist immer Ansichtssache. Aus meiner Sicht ist eine effiziente Nutzung vorhandener Funktionen die "richtige" Programmierung Smile

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

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 13.09.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2016, 15:41     Titel: @denny
  Antworten mit Zitat      
könntest du mir sagen, was ich bei meinem Ansatz hätte korregieren müssen, damit ich zum richigen ergebnis gekommen wär...., oder ist die herangehensweise faslch?
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 13.09.2016, 15:48     Titel:
  Antworten mit Zitat      
Hallo so könnte man auf deine Lösung das anwenden:


Code:


function [c ] = buchstabenZaehlen( a )
% initialisiere array, um zu merken, welche Buchstaben bereits gezählt worden sind
counted = zeros(size(a));
count   = 0;
for i = 1:length(a)
   % wenn noch nicht gezählt, zählen
   if ~counted(i)
      for j = 1:length(a)
         
         if a(i) == a(j)            
            counted(j) = 1;
         end        
      end
      count = count + 1;      
   end
     
end
c = count;

 


Zuletzt bearbeitet von denny am 13.09.2016, 16:05, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
matlabtogo
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 13.09.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2016, 16:01     Titel:
  Antworten mit Zitat      
das leuchtet mir mehr ein, vielen Dank nochmal!! Very Happy
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 - 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.