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

Quersumme

 

Calle
Forum-Century

Forum-Century


Beiträge: 145
Anmeldedatum: 08.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.07.2012, 03:04     Titel: Quersumme
  Antworten mit Zitat      
Hey,
gibt es einen direkten Befehl um die Quersumme einer Zahl zu berechnen? kann darüber nichts finden. HAbe es anders gelöst, aber noch fragen, wieso es so ist.

Code:
function b = quersumme(n)
a = num2str(n);
b = 0;
for c = 1:length(a)
    b = b+a(c)-48;
end
end


Wenn ich z.B. n=123 nehme und im command window (nach dem umwandeln mittels a=num2str(n) ) a(2) eingebe, gibt er mir auch die zahl 2 heraus. wenn ihc allerdings b+a(2) eingebe, gibt er mir 50 heraus. Bei jeder Ziffer gibt er mir 48 zu viel heraus. deswegen ziehe ihc diese einfach ab.

Das wäre meine Frage, warum? weil es ja wie gesagt nur ist, wenn ihc b+a(2) (b+a(3) usw) mache. aber bei a(2) (a(3) usw) gibt er mir die richtigen zahlen.

mfg
Private Nachricht senden Benutzer-Profile anzeigen


Thomas84
Forum-Meister

Forum-Meister


Beiträge: 546
Anmeldedatum: 10.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.07.2012, 06:17     Titel:
  Antworten mit Zitat      
Du addierst ja Zahlen (double) mit Buchstaben (char). Die Buchstaben a(c) musst du vorher wieder in eine Zahl umwandeln.

Code:


function b = quersumme(n)
a = num2str(n);
b = 0;
for c = 1:length(a)
    b = b+str2num(a(c));
end
end

 
Private Nachricht senden Benutzer-Profile anzeigen
 
Calle
Themenstarter

Forum-Century

Forum-Century


Beiträge: 145
Anmeldedatum: 08.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.07.2012, 06:33     Titel:
  Antworten mit Zitat      
ahso, ja, dass macht sinn.

Besten dank.
Aber gibt es denn auch einen extra befehl um die Quersumme zu ermitteln?

mfg
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.07.2012, 07:50     Titel:
  Antworten mit Zitat      
Hallo,

ich muss sagen, ich habe in über 10 Jahren mit MATLAB noch nie damit eine Quersumme errechnet, und mir ist auch nicht bekannt, dass es eine eigene Funktion dazu gibt.

Das ist oft so bei Dingen, die eher selten benötigt werden und die man vor allem auch ohne weiteres in einer Zeile unterbringen kann:

Code:

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

Forum-Century

Forum-Century


Beiträge: 145
Anmeldedatum: 08.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.07.2012, 13:45     Titel:
  Antworten mit Zitat      
ahso, ich wusste nicht, wie ich es so kurz schreiben kann.
danke
mfg

Zuletzt bearbeitet von Calle am 06.07.2012, 13:57, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
madlab
Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 86
Anmeldedatum: 15.05.12
Wohnort: Freiburg
Version: 7.11 (R2010b)
     Beitrag Verfasst am: 06.07.2012, 13:56     Titel:
  Antworten mit Zitat      
für die quersumme muss doch auch 4 rauskommen wenn du n= 4 eingibts oder nicht?
verwechsle ich da jetzt gerade etwas? Embarassed


//edit
ok du hast es angepasst ^^
Private Nachricht senden Benutzer-Profile anzeigen
 
Calle
Themenstarter

Forum-Century

Forum-Century


Beiträge: 145
Anmeldedatum: 08.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.07.2012, 16:24     Titel:
  Antworten mit Zitat      
@madlab
ja, ich war da ein wenig durcheinander im kopf und wollte bei n=4 1+2+3+4 rechnen.
warum? keine ahnung.
aber so wie Harald es aufgeschrieben hat, funktioniert es wunderbar

mfg
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.