|
|
gleichung mit for-schleife |
|
elsa98 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.03.2014, 20:13
Titel: gleichung mit for-schleife
|
 |
|
 |
|
guten abend zusammen,
ich arbeite noch nicht so lange mit matlab und komme mit der aktuellen aufgabe einfach nicht klar. ich hoffe, einer von euch profis, kann mir einen tipp gehen für die bessere überschaubarkeit hab ich die formel als png-bild angehängt.
ich habe eine 98x36 matrix. a und b repräsentieren die zeilen und spalten der matrix, i und j meine Laufvariablen. ich möchte jetzt so was ähnliches wie den rmse bestimmen.
probiert hab ich das mal so
Die fehlermeldung: ??? Subscript indices must either be real positive integers or logicals.
Leider weiß ich jetzt nicht so recht weiter. ich muss doch die summe über i und j laufen lassen, nur wie kann ich das ganze jetzt definieren, dass der index eine ganze zahl wird?
ich hoffe, ich hab mich einigermaßen verständlich ausgedrückt. Vielleicht kann mir ja einer weiterhelfen.
Danke schonmal.
LG. Elli
Beschreibung: |
|
 Download |
Dateiname: |
formel.png |
Dateigröße: |
9.82 KB |
Heruntergeladen: |
322 mal |
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 01.03.2014, 20:35
Titel:
|
 |
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.03.2014, 21:17
Titel:
|
 |
Hallo Harald,
danke für deine schnelle Antwort.
Wenn ich die Formel in deinem Link richtig deute, dürfte es sich um das gleiche Problem handeln. Leider hilft mir das nicht so richtig weiter.
kann ich dann diese formel in matlab überhaupt lösen?
lg.
|
|
|
Epfi |

Forum-Meister
|
 |
Beiträge: 1.134
|
 |
|
 |
Anmeldedatum: 08.01.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.03.2014, 21:48
Titel:
|
 |
Sowohl m als auch n können keine geraden Zahlen sein... Sind sie bei Dir aber. Wenn sie gerade sind, laufen Deine Summen von "minus irgendwas komma fünf" bis "plus irgendwas komma fünf". Das wiederum bedeutet, dass Du versuchst, auf einen Index zuzugreifen, den es nicht gibt. Matlab mag nämlich nur ganzzahlige Indizes...
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.03.2014, 22:25
Titel:
|
 |
|
 |
|
hallo,
genau da liegt das Problem. Nur weiss ich nicht, wie ich das lösen soll. Ich muss die Formel nehmen, die angeben ist.
Ich hab jetzt noch etwas in der Mitschrift nachgelesen. Darin steht, dass a und b die Zeilen und spalten sind also a = 36, b= 98 (richtung und entfernung). bei der formel handelt es sich um die mittlere quadratische abweichung und der mittelwert soll aus einer 3x3 großen fläche ermittelt werden, also 3 punkte in die richtung (n) und 3 punkte in entfernung (m), und das über die gesamte Matrix.
Ich versuch mal zu erklären, was die schleife machen sollte: ich nehmen z.b den 2 punkt her y(2,2) fixiere ihn als mittelpunkt und 'baue' eine 3x3 große Box darüber (y[a-i,b+j]), mit diesen punkten rechne ich mir den rmse aus. danach springe ich mit den schleifen für a und b weiter und 'baue' mir die nächste 3x3 box und rechne mir wieder den rmse aus. Am ende bekomme ich dann eine 36x98 große matrix raus.
jetzt bin ich mir nur nicht sicher, ob die schleife das auch wirklich macht, oder ob ich einfach nur glück hatte und keine fehlermeldung ausgeworfen wird.
lg.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 02.03.2014, 11:44
Titel:
|
 |
Hallo,
ich habe Zweifel, dass die Schleife das macht, was sie soll. Du nimmst nämlich immer nur die Summe über einen Wert und überschreibst T(a,b) mehrfach.
Da deine Matrix 36 Spalten hat, erstaunt es mich, dass du keine Fehlermeldung bekommst, wenn du auf die 89. zugreifst. Vielleicht arbeitest du aber inzwischen einfach mit einer anderen Matrix.
Die inneren beiden for-Schleifen sollten sich dann vektorisieren lassen.
Grüße,
Harald
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.03.2014, 16:51
Titel:
|
 |
hallo Harald,
wow, darauf wäre ich wahrscheinlich nie gekommen, danke. So ganz blicke ich aber noch nicht durch. Ist das jetzt die Endlösung, quasi, die Berechnung der Formel von der Angabe?
Die Zeile
dient dazu, dass T(a,b) nicht immer überschrieben wird, also, dass die Werte in T(a,b) gespeichert werden? Und warum addiere ich?
Vielleicht kannst du mir noch einmal weiter helfen und dann geb ich ruhe
Schönen Sonntag,
elli
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 02.03.2014, 19:52
Titel:
|
 |
Hallo,
Zitat: |
Ist das jetzt die Endlösung, quasi, die Berechnung der Formel von der Angabe? |
So wie ich die Aufgabenstellung verstehe: ja.
Letztlich beinhaltet die Formel eine Doppelsumme. Man initialisiert also auf 0 und addiert (weil Summe) die Terme nach und nach auf.
Grüße,
Harald
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|