|
|
Rechnung mehrfach durchlaufen |
|
Mister Iös |

Forum-Anfänger
|
 |
Beiträge: 11
|
 |
|
 |
Anmeldedatum: 09.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.03.2013, 21:23
Titel: Rechnung mehrfach durchlaufen
|
 |
|
 |
|
hi!
ich bin ziemlich neu in der matlab welt und habe sonst auch nicht viel mit programmierung zu tun. schönes programm und sehr mächtig aber nun muss ich mich damit beschäftigen und weiß bei folgendem problem leider nicht weiter. ich weiß noch nicht einmal nach was ich suchen muss.
Also:
ich habe drei matritzen (3x3) von denen ich zwei für die weitere berechnung verwende. diese beginnt mit einer matrixmultiplikation. die berechnung muss aber mit allen kombinationen durchgeführt werden und da es sich um matritzen handelt gibt es derer sechs, wenn ich mich nicht irre. nun könnte man die rechnung einfach sechs mal kopieren und mit den verschiedenen kombinationen durchlaufen lassen. aber erstens ist das nicht besonders elegant und zweitens soll das programm später evtl. noch für mehr als drei matritzen erweitert werden.
ich hatte als ansatz irgendwas mit for-schleifen im kopf, aber ich denke das ist falsch. ich bin sicher, dass matlab diese aufgabe mit leichtigkeit beherrscht, aber wie immer liegt das problem zwischen schreibtischstuhl und bildschirm.
ich hoffe ihr könnt mir da weiterhelfen! vielen dank schonmal!
vg
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 09.03.2013, 23:34
Titel:
|
 |
Hallo,
die Anzahl der Kombinationen hängt davon ab, was du genau machen möchtest. Insbesondere: darf die Matrix auch mit sich selbst multipliziert werden?
Eine for-Schleife sollte da so oder so passen:
Grüße,
Harald
|
|
|
Mister Iös |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 11
|
 |
|
 |
Anmeldedatum: 09.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.03.2013, 17:47
Titel:
|
 |
hi!
vielen dank für die antwort. dann war meine überlegung vllt doch nicht so falsch. also noch mal deutlicher:
drei matritzen: U1, U2, U3 die rechnung beginnt eigentlich mit C=inv(Ui)*Uj²*inv(Ui). um es zu vereinfachen hab ich eine einfache matrixmultiplikation draus gemacht. so gibt es sechs kombinationen:
U1*U2, U2*U1, U2*U3, U3*U2, U1*U3, U3*U1
mit sich selbst sollen die matritzen nicht multipliziert werden. der code sollte dann am ende ungefähr so aussehen:
U1=[...]
U2=[...]
U3=[...]
for-schleife oder was auch immer
C=inv(Ui)*Uj²*inv(Ui) und weitere rechnung
wie schaffe ich es desweiteren dass die ergebnisse am ende nicht wahllos ausgegeben werden, sondern ich diese zuordnen kann und dann zb sortieren mit 'sort'?
----------
edit: rechtschreibfehler
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 10.03.2013, 19:08
Titel:
|
 |
Hallo,
ich hab dir doch schon den quasi fertigen Vorschlag gemacht? Damit du ihn nutzen kannst, musst du lediglich die Matrizen in ein Cell Array ablegen, also
Das Ergebnis ist doch für jede Kombination der Matrizen eine Matrix. Nach welchen Kriterien sollen die denn dann sortiert werden?
Dass die Ergebnisse vernünftig angeordnet werden ist schon durch meinen ersten Vorschlag gegeben.
Grüße,
Harald
|
|
|
Mister Iös |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 11
|
 |
|
 |
Anmeldedatum: 09.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.03.2013, 19:16
Titel:
|
 |
die rechnung geht ja noch weiter. am ende kommt ein wert für eine dehnung und eine dazugehörige wahrscheinlichkeit für jede kombination der matritzen heraus. gibt auch noch weitere input parameter. geht um kristallographische untersuchungen. wie gesagt bin ich völlig unbedarft was matlab angeht. dann muss ich die vorgeschlagene lösung wohl erstmal verstehen.! XD
vielen dank nochmal!
------------
edit:
die die dehnungen sollen am ende nach den wahrscheinlichkeiten sortiert werden. die anfänglichen matritzen stellen eine einheitszelle im kristall dar und die wahrscheinlichkeit besagt, welche kombination am ende bei welcher spannung am ehesten auftritt. aber das ist alles nicht wirklich relevant für das eigentliche problem. nur zum verständnis was ich vor habe. ^^
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 10.03.2013, 19:26
Titel:
|
 |
Hallo,
probier's halt einfach mal :) Das sollte sich ziemlich direkt übertragen lassen.
Und wenn's dabei Probleme gibt, kann man die am besten am dann vorliegenden Code besprechen.
In welcher Form liegen diese Wahrscheinlichkeiten denn vor bzw. wurden sie schon berechnet? Es wird generell darauf hinauslaufen, die Wahrscheinlichkeiten zu sortieren und die Sortierreihenfolge (zweites Rückgabeargument von sort) auf die entsprechenden Matrizen anzuwenden.
Grüße,
Harald
|
|
|
Mister Iös |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 11
|
 |
|
 |
Anmeldedatum: 09.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.03.2013, 19:59
Titel:
|
 |
so ich glaube ich habe es jetzt geschnallt! ^^ der code schaut jetzt so aus:
nur leider wird C1 bei jedem durchlauf wieder geändert. schön wäre es wenn die ergebnisse unter verschiedenen namen also zb C11, C12, C13,... gespeichert werden oder in einem cell array. wie schaffe ich das?
---------
edit:
ein cell array wäre wohl das beste, da die rechnung noch weiterläuft. müsste man hier vllt. wieder eine for-schleife einsetzten? also quasi für den index?
|
|
|
Mister Iös |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 11
|
 |
|
 |
Anmeldedatum: 09.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.03.2013, 20:26
Titel:
|
 |
Harald hat Folgendes geschrieben: |
In welcher Form liegen diese Wahrscheinlichkeiten denn vor bzw. wurden sie schon berechnet? Es wird generell darauf hinauslaufen, die Wahrscheinlichkeiten zu sortieren und die Sortierreihenfolge (zweites Rückgabeargument von sort) auf die entsprechenden Matrizen anzuwenden.
Grüße,
Harald |
die wahrscheinlichkeiten berechnen sich erst später. sie beziehen sich dann prinzipiell auch auf die kombinationen der matritzen aber eigentlich sollen nur skalare dehnungswerte (die sich wiederum aus den kombinationen ergeben) damit sortiert werden. ich denke das sollte dann aber kein problem sein.
|
|
|
Mister Iös |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 11
|
 |
|
 |
Anmeldedatum: 09.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.03.2013, 03:51
Titel:
|
 |
Mister Iös hat Folgendes geschrieben: |
nur leider wird C1 bei jedem durchlauf wieder geändert. schön wäre es wenn die ergebnisse unter verschiedenen namen also zb C11, C12, C13,... gespeichert werden oder in einem cell array. wie schaffe ich das?
|
keiner eine idee?
|
|
|
Seban |

Forum-Meister
|
 |
Beiträge: 600
|
 |
|
 |
Anmeldedatum: 19.01.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab R2014b
|
 |
|
|
 |
|
Verfasst am: 13.03.2013, 09:07
Titel:
|
 |
Hallo,
Mit C{1,1} greift man auf die Werte im ersten Feld des Arrays zu.
Man sollte übrigens vermeiden Variablen der Art C11, C12, C13 usw anzulegen. Auf C(1,1), C(1,2) usw kann man im weiteren Verlauf besser zugreifen.
Grüße,
Seban
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 13.03.2013, 14:25
Titel:
|
 |
Hallo Seban,
Noch zwei kleine Tips:
Eine Pre-allocation ist bei einem {1x6} Array zwar noch nicht messbar schneller, aber es lohnt sich, dies grundsätzlich immer anzuwenden, weil man dann niemals nachbessern muss, falls es doch plötzlich auf {1x1e6} aufgebohrt wird. Nachbessern ist nämlich eine der übelsten Fehlerquellen.
Es ist billiger, per C{k}=y direkt in ein Cell-element zu schreiben, anstatt mit C(k)={y} zunächst ein {1x1} Cell zu erzeugen und es in das Cell-Array zu kopieren.
Gruß, Jan
|
|
|
Mister Iös |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 11
|
 |
|
 |
Anmeldedatum: 09.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.03.2013, 19:54
Titel:
|
 |
vielen vielen dank! ihr habt mir alle sehr geholfen!
|
|
|
|
|
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.
|
|