matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Dt. Schulen im Ausland: Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenMatlabsumsum
Foren für weitere Studienfächer findest Du auf www.vorhilfe.de z.B. Astronomie • Medizin • Elektrotechnik • Maschinenbau • Bauingenieurwesen • Jura • Psychologie • Geowissenschaften
Forum "Matlab" - sumsum
sumsum < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

sumsum: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 20:37 Sa 03.02.2007
Autor: Bastiane

Hallo!

Ich habe hier eine Musterlösung zu einer Aufgabe, wo ich einen Teil draus nicht verstehe. Und zwar steht dort:

dist=zeros(256,1);
for ind=0:255
  dist(ind+1)=sum(sum(I1==ind));
end

In der ersten Zeile wird also quasi ein Spaltenvektor der "Länge" 256 mit lauter Nullen erzeugt. Und die for-Schleife läuft dann wohl durch alle diese Elemente durch (warum steht da "ind"? Man könnte doch auch genauso einfach "i" schreiben, oder?). So, aber was bitte schön, wird dort gemacht? Was bedeutet "sumsum"? Das konnte ich in der Hilfe von Matlab leider nicht finden. Und "==" scheint wohl auch dort der Vergleichsoperator zu sein, aber was genau wird dort verglichen? I1 ist doch ein Bild (das wurde in einer Aufgabe vorher mal an I1 zugewiesen) und ind ist doch nur der Laufindex der Schleife, oder? Und was wird dann summiert??

Falls es hilft, das ist der Anfang von der Histogrammegalisierung...

Viele Grüße
Bastiane
[cap]


        
Bezug
sumsum: Antwort
Status: (Antwort) fertig Status 
Datum: 00:33 So 04.02.2007
Autor: Martin243

Hallo Bastiane,

da bin ich (hehe). Dann wollen wir mal:

> In der ersten Zeile wird also quasi ein Spaltenvektor der "Länge" 256 mit lauter Nullen erzeugt.

Genau! Das wäre aber gar nicht nötig, weil ja gleich alle Einträge dieses Vektors beschrieben werden. Man kann diese erste Zeile also getrost weglassen, falls die Variable dist noch nicht benutzt wurde. Sonst tut es auch ein "clear dist;".


> Und die for-Schleife läuft dann wohl durch alle diese Elemente durch (warum steht da "ind"? Man könnte doch auch genauso einfach "i" schreiben, oder?).

i ist genauso gut. ind soll vielleicht an Index erinnern, ein sprechenderer Name also? Ansonsten könnte die Variable auch alte_sommerreifen heißen.


> So, aber was bitte schön, wird dort gemacht? Was bedeutet "sumsum"?
> Das konnte ich in der Hilfe von Matlab leider nicht finden.

Da steht ja nicht "sumsum", sondern zweimal "sum". Das sollte in der Hilfe stehen, aber egal: Das Ganze wird auf eine Matrix angewandt, die weiter unten erklärt wird. Das erste sum summiert entlang der Spalten, bildet also einen Zeilenvektor, dessen Einträge die Summen der einzelnen Spalten enthalten. Das zweite (äußere) sum summiert dann diese Summen auf, so dass am Ende ein Skalar dasteht.


> Und "==" scheint wohl auch dort der Vergleichsoperator zu sein, aber was genau wird dort verglichen? I1 ist doch ein Bild (das wurde in einer Aufgabe vorher mal an I1 zugewiesen) und ind ist doch nur der Laufindex der Schleife, oder? Und was wird dann summiert??

Alles richtig! "==" vergleicht und liefert 1 oder 0.
In Matlab gibt es die (sehr nützliche) Besonderheit, dass man Vektoren und Matrizen (auch mehrdimensionale Arrays) mit Skalaren verknüpfen kann. Dann wird jeder Eintrag der Matrix mit diesem Skalar verknüpft. Das Ergebnis ist dann eine Matrix derselben Größe, deren Einträge die Ergebnisse der einzelnen Verknüpfungen sind.
Beim Vergleich ist das Ergebnis eine Matrix aus Einsen und Nullen. An den Stellen mit den Einsen wahr der Vergleich wahr, sonst falsch.
Wenn du also eine Grauwertmatrix I1 mit einem Skalar ind vegleichst, bekommst du eine Matrix, die Einsen an den Stellen enthält, die genau den Grauwert ind haben.
Warum summiert man diese Stellen auf? Das ist nichts anderes als Zählen, denn das Summieren von Einsen ist ja dasselbe, als würde man die Stellen mit diesem Grauwert zählen. Mathematisch wäre das dann:
[mm] $\sum_{(m,n)\in\{1,...,M\}\times\{1,...,N\}, I1(m,n)=ind}1$, [/mm]
zumindest haben wir diese Schreibweise mehrmals bemüht.


Mein Tipp:
Nimm dir eine kleine Bildmatrix, z.B.:
im = floor(10*rand(10));

und schau dir folgende Ergebnisse an:
im == 5
sum(im == 5)
sum(sum(im == 5))


So, ich hoffe, das hilft etwas...


Gruß
Martin

Bezug
                
Bezug
sumsum: besser spät als nie ;-)
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 22:44 Sa 17.02.2007
Autor: Bastiane

Hallo Martin!

Ist zwar seeehr spät, aber ich musste noch für eine andere Klausur lernen und habe mich dann in Computer Vision auch erstmal auf die "Theorie" konzentriert. Aber jetzt brauchte ich ein bisschen Abwechslung, und bevor ich irgendeinen Blödsinn mache, hab' ich mich dann mal wieder an Matlab gesetzt. :-)

Wollte mich noch für diese schöne Antwort bedanken. Habe jetzt verstanden, was dort passiert und somit auch den Rest der Musterlösung. Vielen Dank. [sunny]

Viele Grüße
Bastiane
[cap]

Bezug
                        
Bezug
sumsum: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 12:14 So 18.02.2007
Autor: Martin243

Hallo,

eine kleine Anmerkung, wo wir schon dabei sind:
Das Erzeugen der "zeros" am Anfang beschleunigt die ganze Sache. Dadurch wird sofort der nötige Speicherplatz alloziert, es muss also der Vektor nicht jedesmal erweitert werden. Also vielleicht doch lieber nicht weglassen...


Gruß
Martin

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]