|
|
Matrix erstellen aus Differenzen |
|
Gast25 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.07.2011, 10:08
Titel: Matrix erstellen aus Differenzen
|
 |
Hallo zusammen,
ich habe erst vor ein paar Tagen angefangen mit Matlab zu arbeiten. Habe direkt eine (für euch wahrscheinlich einfache) Frage. Ich habe einen Vektor, bzw. eine n*1-Matrix mit verschiedenen Werten. Daraus möchte ich eine Matrix bauen, die alle Differenzen enthält. Das Matrix-Element 1,1 soll somit die Differenz zwischen dem Vektorelement 1 und 1 haben (also null). Das Element 2,1 die Differenz zwischen dem vektorelement 2 und 1 usw. Das ganze will ich sozusagen als Funktion haben um das auf einen beliebigen Vektor v anwenden zu können (also muss noch sowas wie eine Abhängigkeit von length(v) für die Größe der Matrix rein). Es dürfte sich eine Matrix ergeben, die symmetrisch ist und eine Diagonale mit Nullen besitzt.
Kann mir jemand helfen? oder ist das Problem zu unklar beschrieben?
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 16.07.2011, 10:43
Titel:
|
 |
Hallo,
Wenn das nicht das ist, was du willst, dann ist es zu unklar beschrieben.
Grüße,
Harald
|
|
|
DSP |

Forum-Meister
|
 |
Beiträge: 2.117
|
 |
|
 |
Anmeldedatum: 28.02.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014b
|
 |
|
|
 |
|
Verfasst am: 16.07.2011, 11:01
Titel:
|
 |
Hallo Harald,
die Funktion "bsxfun" ist meiner Matlab Version nicht bekannt. Gibt es dazu auch eine Alternative?
Geht es nicht auch damit?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 16.07.2011, 11:29
Titel:
|
 |
Hallo DSP,
bsxfun wurde in MATLAB 2007a eingeführt. Wenn du eine ältere Version verwendest, wird sie bsxfun in der Tat nicht erkennen.
Hier eine Alternative ohne bsxfun:
Allerdings wird hier temporär eine zweite Matrix angelegt, die ebenso groß ist wie M. Bei großen Vektoren kann eine solche Speicherverschwendung zum Problem werden.
Mein Eindruck ist, dass deine Lösung nur in Spezialfällen das gleiche macht. Probier es mal mit einem Vektor von Zufallszahlen...
Grüße,
Harald
|
|
|
DSP |

Forum-Meister
|
 |
Beiträge: 2.117
|
 |
|
 |
Anmeldedatum: 28.02.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014b
|
 |
|
|
 |
|
Verfasst am: 16.07.2011, 11:40
Titel:
|
 |
Alles klar...Danke.
Edit: hast Recht...es geht nur in einigen Spezialfällen
|
|
|
Gast25 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.07.2011, 15:12
Titel:
|
 |
Super, vielen Dank.
Bin erst am Montag wieder bei der Arbeit im Matlab und probiere es dann aus.
Habe einen Fehler gemacht, meinte nicht symmetrische Matrix. oberhalb von der Diagonalen sollten dieselben Werte, aber negativ stehen.
Die erste Spalte enthält: v(1,1)-v(1,1), v(2,1)-v(1,1), v(3,1)-v(1,1)... die zweite Spalte enthält: v(1,1)-v(2,1), v(2,1)-v(2,1), v(3,1)-v(2,1) usw...
Der Vektor ist z.b. v = [1 5 7 10 14]
Also ist die Matrix:
0 -4 -6
4 0 -2
6 2 0 usw..
Vielen Dank für die Hilfe
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 16.07.2011, 17:29
Titel:
|
 |
Hallo,
dann musst du nur das ABS in meinem Code weglassen.
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.
|
|