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

Rot13-Matlab Code

 

sa2967
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 06.10.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.10.2020, 20:09     Titel: Rot13-Matlab Code
  Antworten mit Zitat      
Hallo ihr Lieben!
Mein Problem bezieht sich auf die Aufgabenstellung, eine Rot13-Kodierung zu erstellen. Für alle, die sie nicht kennen:
Rot13 bedeutet, dass die Buchstaben im Alphabet um 13 nach oben verschoben werden. So wird aus einem "A" ein "N" und aus einem "M" ein "Z". Bei zweimaliger Anwendung bekommt man so wieder den Originalbuchstaben heraus.
In meiner Aufgabenstellung soll sich die Codierung allerdings nur auf die reinen Buchstaben A-Z, nicht aber auf Sonderzeichen und Umlaute, beziehen. Dies funktioniert soweit auch ganz gut. Man kann auch mehrere Buchstaben gleichzeitig codieren.

Problem allerdings: dies geht nur von einer Sorte. Ich kann also kleine Buchstaben so viele ich will aneinanderreihen und es funktioniert. Auch Großbuchstaben werden richtig codiert. Vermische ich aber Großbuchstaben, Kleinbuchstaben und/oder Sonderzeichen, so ist der Output = dem Input. Hat jemand eine Idee, woran das liegen könnte?

Ich möchte keine vollständige Lösung, da ich dieses Problem so weit es geht selber lösen möchte. Eure Ideen wären aber sicherlich sehr hilfreich.

Code:


function r = rot13(s)


if (s >= 'A' & s <= 'Z')        % Find out if input is a capitalized letter
    r = mod(s-'A'+13,26)+'A';  
elseif (s >= 'a' & s <= 'z')    % Find out if input is a small letter
    r = mod(s-'a'+13,26)+'a';
else
    r = s;                      % Anything else
end

r = char(r);                    % convert into character

end
 
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.10.2020, 20:18     Titel:
  Antworten mit Zitat      
Hallo,

ich kann bei solchen Problemen nur empfehlen, den Debugger zu nutzen. Dann siehst du, dass nur eine der if-Anweisungen erreicht wird. Das sollte nicht überraschen, denn es gibt ja keine for-Schleife oder ähnliches.
Also zwei Möglichkeiten:
a) eine for-Schleife über die Zeichen
b) logische Indizierung mit den Bedingungen als Index.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.