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

Suche effizientere Art um eine nxn -Matrix zu schreiben

 

timmy141
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 11.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.11.2011, 18:16     Titel: Suche effizientere Art um eine nxn -Matrix zu schreiben
  Antworten mit Zitat      
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!
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 21.11.2011, 18:18     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen
 
timmy141
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 11.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.11.2011, 18:27     Titel:
  Antworten mit Zitat      
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?
Private Nachricht senden Benutzer-Profile anzeigen
 
soad
Forum-Century

Forum-Century


Beiträge: 150
Anmeldedatum: 10.11.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.11.2011, 18:34     Titel:
  Antworten mit Zitat      
Die MATLAB-Befehle ZEROS und DIAG werden dir behilflich sein. Mit HELP kannst du entsprechende Hilfe aufrufen:
Code:


edit: ONES ist natürlich besser geeignet als ZEROS Confused
Private Nachricht senden Benutzer-Profile anzeigen
 
timmy141
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 11.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.11.2011, 19:15     Titel:
  Antworten mit Zitat      
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?
Private Nachricht senden Benutzer-Profile anzeigen
 
soad
Forum-Century

Forum-Century


Beiträge: 150
Anmeldedatum: 10.11.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.11.2011, 19:43     Titel:
  Antworten mit Zitat      
Sorry, dass ich dich mit ZEROS verwirrt habe, günstiger ist natürlich ONES.

Mit
Code:
erzeugst du dir einen Vektor der Länge 10 von Einsen und multiplizierst das Ganze mal 2.

So, jetzt kannst du diesen Vektor mit
Code:
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!
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 - 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.