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

Inverse Matrix einer nicht quadratischen Matrix bilden

 

formater
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 52
Anmeldedatum: 10.09.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.10.2008, 16:04     Titel: Inverse Matrix einer nicht quadratischen Matrix bilden
  Antworten mit Zitat      
Ich habe eine 4x12800 Matrix und moechte die inverse Matrix bilden, so dass die Matrix in 3200 4x4 geteilt wird und von jeder die inverse Matrix berechnet wird.

Ist das irgendwie umsetzbar?
Private Nachricht senden Benutzer-Profile anzeigen


formater
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 52
Anmeldedatum: 10.09.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.11.2008, 18:13     Titel:
  Antworten mit Zitat      
Da mir keiner antwortet, will ich das Beispiel mal hier posten.

Ich habs mal mit pinv ausprobiert und es kommt was raus, aber ich weiss nicht obs richtig ist.

Mein Problem ist, dass die Werte der Matrix schon eine Matrix sind und ich deshalb keine inverse Matrix bilden kann. Man muesste es irgendwie aufsplitten, so dass die Matrix fuer jeden Wert von f einzeln invertiert wird,aber ich weiss nicht wie.

Turn_down_of_Out_of_plane.m
 Beschreibung:

Download
 Dateiname:  Turn_down_of_Out_of_plane.m
 Dateigröße:  10.63 KB
 Heruntergeladen:  725 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Schrank
Forum-Century

Forum-Century


Beiträge: 203
Anmeldedatum: 10.07.08
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 03.11.2008, 21:56     Titel:
  Antworten mit Zitat      
Hallo formater,
hab mir jetzt deinen Download nicht angesehen, aber warum machst du es nicht einfach so?
Code:
clc
clear
A=rand(4, 12800);
for i = 1:12800/4
    B(i,:,:)=inv(A(1:4,1+(i-1)*4:i*4));
end

bzw.
Code:

A=rand(4, 12800);
for i = 1:12800/4
    Ainv(1:4, 1+(i-1)*4:i*4) = inv(A(1:4,1+(i-1)*4:i*4));
end
 

zugegeben aus Performancesicht nicht ideal, aber es stellt sich ja eh die Frage ob du die Inverse explizit brauchst.

Gruß Schrank
Private Nachricht senden Benutzer-Profile anzeigen
 
formater
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 52
Anmeldedatum: 10.09.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.11.2008, 13:33     Titel:
  Antworten mit Zitat      
So weit so gut.

Jetzt erhalte ich eine 4x4x3200 Matrix.

Die muss ich mit einer 1x4x3200 Matrix multiplizieren um als Loesung eine
1x4x3200 Matrix zu erhalten. Ist das ueberhaupt moeglich und kann man die Matrix so plotten, dass jeweils 1 der 1x3200 Matrix nur geplottet wird?
Private Nachricht senden Benutzer-Profile anzeigen
 
Schrank
Forum-Century

Forum-Century


Beiträge: 203
Anmeldedatum: 10.07.08
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 04.11.2008, 14:29     Titel:
  Antworten mit Zitat      
Hallo formater,
ich bin nicht wirklich gut darin soetwas zu formulieren... aber ich habe das Gefühl du solltest mal kurz Pause machen. Tief durchatmen!
Sehr gut. Very Happy
Wie aus diesem und deinen anderen Beiträgen recht deutlich wird, hast du die Arbeitsweise von Matlab noch nicht wirklich verinnerlicht. Gleichzeitig versuchst du aber, möglichst schnell deinen Programmcode runter zu reißen.
Ich vermute mal du stehst unter Termindruck und hast eigentlich garkeine Lust dich wirklich mit Matlab zu beschäftigen. Ich bin Student bei meiner Diplomarbeit und kann das recht gut nachvollziehen. Aber du tust dir gerade wirklich keinen Gefallen.Bevor du versuchst von Stücken riesiger Matrizen die Inverse zu berechnen und dann wieder riesige Datenmengen zu multiplizieren solltest du dir das für eine kleine z.B. 4*4 Matrize ansehen. Und dann deine Erkenntnisse auf das große Übertragen. Dann würde dir wahrscheinlich z.B. in der Hilfe auffallen das es A/B, A./B, A\B & A.\B gibt und du dir damit einen Arbeitsschritt sparen kannst.
Bezugnehmend zu deinem anderen Thema hättest du hoffentlich auch die Variablendeklaration anders, übersichtlicher gestaltet. Dann könnte jemand anderes diesen jetzt auch verstehen und dir weiter helfen.
Ich weiß, es ist unrealistisch das du dir jetzt eine Woche Zeit nimmst und erstmal ein Tutorial durcharbeitest. Aber vor jeder neuen Herausforderung in deinem Code solltest du versuchen das Problem erstmal im Kleinen zu lösen und das gelernte dann auf das große Problem anzuwenden.

Zurück zu deiner Frage, wo ist dein Problem? Hast du schon versucht es selbst zu lösen?

Gruß Schrank
Private Nachricht senden Benutzer-Profile anzeigen
 
formater
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 52
Anmeldedatum: 10.09.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.11.2008, 16:16     Titel:
  Antworten mit Zitat      
Hatte einen Fehler, die Matrix war falsch herum.Jetzt passt es.
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.