|
|
Suche effizientere Art um eine nxn -Matrix zu schreiben |
|
timmy141 |

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 11.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.11.2011, 18:16
Titel: Suche effizientere Art um eine nxn -Matrix zu schreiben
|
 |
Hallo liebes Forum!
Ich bin Neuling im Matlab und suche eine effiziente Art eine nxn Matrix zu schreiben, zum Beispiel mit n=100.
Die Hauptdiagonale müsste komplett mit 2 besetzt werden, die erste obere und untere Nebendiagonale mit jeweils (-1).
Wie gebe ich das nun effizient ein, um nicht 10.000 Zeichen zu schreiben?
Ich wäre sehr dankbar, wenn mir jemand helfen könnte!
|
|
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 21.11.2011, 18:18
Titel:
|
 |
was hast du denn bis jetzt schon versucht? welche fehler sind aufgetreten? wenn du garkeine kentnisse in matlab besitzt solltest du dir mal das tutorial angucken.
|
|
|
timmy141 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 11.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.11.2011, 18:27
Titel:
|
 |
Ich habe mich mit dem Skript der Vorlesung und den darin enthaltenen Übungen und Einführungen zu Matlab beschäftigt. Ich habe Zufallsmatrizen erstellt, Determinanten und was alles so dazu gehört.
Ich weiß auch, dass man z.B. mit den Befehlen "size(A,1)" die Anzahl der zeilen von A und mit "size(A,2)" die Anzhal der Spalten von A eingeben kann. Das heißt, dass ich damit eine z.b. 100x100 Matrix erstellen kann. Aber wie kann ich nun eingeben, welche Werte die komplette Hauptdiagonale und die beiden Nebendiagonalen haben sollen?
|
|
|
soad |

Forum-Century
|
 |
Beiträge: 150
|
 |
|
 |
Anmeldedatum: 10.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.11.2011, 18:34
Titel:
|
 |
Die MATLAB-Befehle ZEROS und DIAG werden dir behilflich sein. Mit HELP kannst du entsprechende Hilfe aufrufen:
edit: ONES ist natürlich besser geeignet als ZEROS
|
|
|
timmy141 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 11.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.11.2011, 19:15
Titel:
|
 |
Danke für die bisherigen Antworten.
ich habe mich damit beschäftigt. ich habe mit "zeros" eine 100x100 Matrix erstellt. nun hab ich das problem auf der hauptdiagonalen die 2(en) festzulegen. mit "x=diag(A)" kann man ja auf diese zugreifen, nur bei mir spuckt das am ende nicht die 2 auf der hauptdiagonalen aus.
kann mir nicht jemand die befehle sagen, wie ich das matlab sage, dass er mir dort die zweien hinsetzt und auf der unteren und oberen nebendiagonalen die -1?
ich probiere die ganze zeit erstmal mit n=10, dann ist der bildschirm nicht gleich voll.
Ich habe mir gedacht, ein "x=2" festzulegen und dann zu sagen x=diag(A). Aber er schreibt mir die 2 nicht auf die diagnoale von A. genauso habe ich ausprobiert," x=-1" und dann "x=diag(A,1)". Aber es funktioniert nicht. Wo ist denn mein Fehler?
|
|
|
soad |

Forum-Century
|
 |
Beiträge: 150
|
 |
|
 |
Anmeldedatum: 10.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.11.2011, 19:43
Titel:
|
 |
Sorry, dass ich dich mit ZEROS verwirrt habe, günstiger ist natürlich ONES.
Mit
erzeugst du dir einen Vektor der Länge 10 von Einsen und multiplizierst das Ganze mal 2.
So, jetzt kannst du diesen Vektor mit
auf die Hauptdiagonale legen und erhälst eine 10x10 Matrix mit 2ern auf der Hauptdiagonale.
Alternativ könntest du auch den Befehl EYE verwenden, dies entspricht der Einheitsmatrix.
Mit den Paramter K (siehe Hilfe zu DIAG) kannst du die entsprechende Diagonale angeben.
Jetzt kannst du dir 3 Matrizen bauen die nur Einträge auf den gewünschten Diagonalen enthalten und diese addieren!
|
|
|
|
|
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.
|
|