Die Mathe-Redaktion - 02.09.2014 06:13
Auswahl
Aktion im Forum
Suche
Stichwortsuche in Artikeln und Links von Matheplanet
Suchen im Forum
Suchtipps

Bücher
Englische Bücher
Software
Suchbegriffe:
Mathematik bei amazon
Naturwissenschaft & Technik
In Partnerschaft mit Amazon.de
Kontakt
Mail an Matroid
[Keine Übungsaufgaben!]
Impressum

Bitte beachten Sie unsere Nutzungsbedingungen, die Distanzierung, unsere Datenschutzerklärung und
die Forumregeln.

Sie können Mitglied werden oder den Newsletter bestellen.

Der Newsletter August 2014

Für Mitglieder
Mathematisch für Anfänger
Wer ist Online
Aktuell sind 179 Gäste und 2 Mitglieder online.

Sie können Mitglied werden:
Klick hier.

Über Matheplanet
 
Zum letzten Themenfilter: Themenfilter:
Matroids Matheplanet Forum Index
Moderiert von mire2 gaussmath
Mathematische Softwarepakete » Matlab » gerade/ungerade Zahl
Druckversion
Druckversion
Autor
Universität/Hochschule Dieser Thread wurde gut bewertet (insges. 5-mal) J gerade/ungerade Zahl
tom84
Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 14.05.2007
Mitteilungen: 61
Aus:
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2007-06-15 13:19


hallo allerseits!

weis jemand zufällig, wie man in einer if-verzeigung zwischen einer geraden und einer ungeraden Zhal unterscheiden kann (ich denke mal das geht irgendwie...). Hier mein beispiel:
matlab
A=[8
   7
   5
   2];
ich möchte nun irgendwie die ungeraden zahlen bestimmen:
matlab
n=0;
for i=1:1:size(A)
  if A(i)==>>UNGERADE<< 
    n=n+1;
    ungerade(n)=A(i)
  end
end
irgend so einen befehl muss matlab doch parat haben!

ich hab diese frage in keinem anderen forum gestellt und hoffe jemand kann mir weiterhelfen!

mfg, tom



  Profil  Quote  Link auf diesen Beitrag Link
Hardy
Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 27.12.2004
Mitteilungen: 181
Aus: Bonn
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, eingetragen 2007-06-15 13:31


Hallo,

ich habe zwar keine Ahnung von MATLAB, aber ich bin überzeugt davon, dass es einen Modulo-Operator gibt.


Gruß, Hardy


-----------------
Pure mathematics is on the whole distinctly more useful than applied. For what is useful above all is technique, and mathematical technique is taught mainly through pure mathematics. Godfrey H. Hardy



  Profil  Quote  Link auf diesen Beitrag Link
shredhead
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 24.02.2004
Mitteilungen: 5146
Aus: Aachen, jetzt in München
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, eingetragen 2007-06-15 14:06


Hi

Das geht ohne for-Schleife:
MATLAB
A = [8 7 5 2]; 
ungeradeIndizes = find(mod(A,2) ~= 0);
geradeIndizes = find(mod(A,2) == 0);

"ungeradeIndizes" sind die Indizes von A wo ungerade Zahlen stehen und analog "geradeIndizes"! smile

Gruß
Jörg





-----------------
In mathematics you don't understand things. You just get used to them. ---John von Neumann---
[ Nachricht wurde editiert von shredhead am 16.06.2007 11:06:52 ]



  Profil  Quote  Link auf diesen Beitrag Link
shredhead
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 24.02.2004
Mitteilungen: 5146
Aus: Aachen, jetzt in München
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, eingetragen 2007-06-15 14:07



Nachtrag:

Dementsprechend liefert:
MATLAB
A(ungeradeIndizes)

die ungeraden Zahlen und:
MATLAB
A(geradeIndizes)

die geraden Zahlen!

Alles klar?

Gruß
Jörg




-----------------
In mathematics you don't understand things. You just get used to them. ---John von Neumann---



  Profil  Quote  Link auf diesen Beitrag Link
tom84
Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 14.05.2007
Mitteilungen: 61
Aus:
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.4, vom Themenstarter, eingetragen 2007-06-15 18:45


tach jörg!

vielen dank! und schönes we!

gruß, tom



  Profil  Quote  Link auf diesen Beitrag Link
tom84
Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 14.05.2007
Mitteilungen: 61
Aus:
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.5, vom Themenstarter, eingetragen 2007-06-15 19:11


sorry, ich war etwas vorschnell mit dem abhaken des themas...

das beispiel aus dem ersten beitrag war etwas missverständlich. ich möchte wirklich anhand des Kriteriums, ob eine zahl gerade oder ungerade ist, eine if-verzweigung haben. also, es taucht irgendeine zahl x auf, dann:
matlab
if x == >>ungerade<<
  y=x-5;
else
  y=0;
end
ich hoffe jetzt ist es verständlicher!

schönen gruß, tom




  Profil  Quote  Link auf diesen Beitrag Link
rlk
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.03.2007
Mitteilungen: 8218
Aus: Wien
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.6, eingetragen 2007-06-15 19:19


Hallo Tom84,
Du kannst die Modulo-Funktion, die den Rest nach der Division durch
(in diesem Fall 2) verwenden:
Matlab/Octave
if Mod(x,2) ~= 0
  % ungerade
  y=x-5;
else
  y=0;
end
Beachte, hier alle nicht-ganzen Zahlen als ungerade interpretiert werden (Matlab-Matrizen haben normalerweise Elemente vom Typ double,
also Gleitpunktzahlen).
Entweder ist mir zu heiss ;-), oder shredhead hat ungerade (dort ist
mod(A,2) ~= 0) und gerade (mod(A,2) == 0) verwechselt.

Viel Erfolg,
Roland




  Profil  Quote  Link auf diesen Beitrag Link
tom84
Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 14.05.2007
Mitteilungen: 61
Aus:
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.7, vom Themenstarter, eingetragen 2007-06-15 19:29


ne dir ist nicht zu heiss wink

funktioniert aber! vielen dank.

gruß, tom



  Profil  Quote  Link auf diesen Beitrag Link
Buri
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 02.08.2003
Mitteilungen: 38487
Aus: Dresden
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.8, eingetragen 2007-06-15 21:34


Hi tom84,
besser als der Test auf ungerade mit Hilfe von mod(n,2)~=0 wäre die Verwendung der Funktion bitand(n,1), die das gleiche Ergebnis, nämlich das niederwertigste Bit der Ganzzahl n liefert.
Somit kannst du schreiben
MATLAB
if mod(n,2)
  tu etwas für ungerade n
else
  tu etwas für gerade n
end
aber die gleiche Wirkung, jedoch größere Effektivität hat dies:
MATLAB
if bitand(n,1)
  tu etwas für ungerade n
else
  tu etwas für gerade n
end
Wenn du mit dem Beitrag Nr. 6 von rlk vergleichst und die Semantik des if-Befehls berücksichtigst, siehst du, daß man auf die Angabe von ~= 0 verzichten kann.
Gruß Buri


-----------------
Cette question nous entraînerait trop loin. (Diese Frage würde uns zu weit führen) Henri Poincaré (1854-1912)
[ Nachricht wurde editiert von Buri am 15.06.2007 21:37:40 ]



  Profil  Quote  Link auf diesen Beitrag Link
shredhead
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 24.02.2004
Mitteilungen: 5146
Aus: Aachen, jetzt in München
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.9, eingetragen 2007-06-16 11:13


Hi

@ Tom

Was gefällt dir an meinem Vorschlag nicht? Die Verwendung einer for-Schleife ist nicht erforderlich bei der Aufgabenstellung deines ersten Posts. Oft hat man Vektoren in Matlab, da solltest du über meinen Vorschlag nochmals nachdenken, oder ihn mit Buris Vorschlag kombinieren! smile

Gruß
Jörg


-----------------
In mathematics you don't understand things. You just get used to them. ---John von Neumann---
[ Nachricht wurde editiert von shredhead am 16.06.2007 11:15:18 ]



  Profil  Quote  Link auf diesen Beitrag Link
tom84
Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 14.05.2007
Mitteilungen: 61
Aus:
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.10, vom Themenstarter, eingetragen 2007-06-16 13:30


hi jörg!
das mit dem vektor geht natürlich viel schneller und einfacher ohne die for-schleife. wichtig war für mich aber die if-verzeigung, ob eine zahl gerade oder ungerade ist...

deinen vorschlag konnte ich aber an einer anderen stelle anwenden!

auf jeden fall vielen dank!!!

gruß, tom



  Profil  Quote  Link auf diesen Beitrag Link
tom84 hat die Antworten auf ihre/seine Frage gesehen.
tom84 hat selbst das Ok-Häkchen gesetzt.
tom84 wird per Mail über neue Antworten informiert.
Bewerte diesen Thread:
[Was sonst bewertet wurde]
 Neues Thema [Neues Thema]

 Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2014 by Matroids Matheplanet
This web site was made with PHP-Nuke, a web portal system written in PHP. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]