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

Matrix Nebendiagonale

 

sutdent
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 17.05.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.07.2018, 12:32     Titel: Matrix Nebendiagonale
  Antworten mit Zitat      
Hallo,
ich möchte gerne die Elemente der Nebendiagonale einer Matrix mit bestimmten Werten über eine for-Schleife füllen.
Hier mein code:

Code:
A=zeros(dim);
for i=1:dim
    A(:,i)=dim;
end
disp(A)


Allerdings füllt dieser nacheinander die einzelnen Spalten aus.

Ich würde mich freuen, wenn jmd. eine Idee hat was noch fehlt. Smile
Private Nachricht senden Benutzer-Profile anzeigen


J0nas
Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 10.09.15
Wohnort: ---
Version: ab 2016a
     Beitrag Verfasst am: 19.07.2018, 12:46     Titel:
  Antworten mit Zitat      
Hallo sutdent,

schau dir mal den Befehl diag an, der könnte dir da sicher weiterhelfen. Eventuell geht das dann auch ohne Schleife Wink
Mit deinem Ansatz musst du die Nebendiagonale zellenweise beschreiben. Da würde dann noch eine 2. Schleife für die Spalten fehlen.

Grüße
Jonas
_________________

1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 19.07.2018, 16:44     Titel: Re: Matrix Nebendiagonale
  Antworten mit Zitat      
Hallo sutdent,

Zitat:
Allerdings füllt dieser nacheinander die einzelnen Spalten aus.

Exakt. "A(:,i)" ist eine ganze Spalte.

Was bedeutet nun genau "die Werte der Nebendiagonalen"? Wie soll das Endergebnis aussehen?

Ich zögere eine Lösung zu posten, weil sich die Frage nach einer Hausaufgaben anhört.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
sutdent
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 17.05.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.07.2018, 16:42     Titel:
  Antworten mit Zitat      
Habe eine Lösung gefunden um jeweils eine Nebendiagonale mit Werten aufzufüllen. Smile
Jetzt stellt sich mir die Frage wie man auch die restlichen Nebendiagonalen füllen kann?

Code:
n=input('Please enter the dimension n of the matrix:');
B = zeros(n);

for i = 1:n
    B(i,i)=1;
end
for i = 1:n-1
    B(i+1,i) = 2;
    B(i,i+1) = -2;
end
disp(B)
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.07.2018, 21:28     Titel:
  Antworten mit Zitat      
Hallo,

mit weiteren for-Schleifen oder mit einer for-Schleife über die bisherigen for-Schleifen. Oder mit dem bereits erwähnten Befehl diag .

Für weitere Unterstützung wäre es hilfreich zu wissen, mit was du welche Nebendiagonalen füllen willst.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
sutdent
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 17.05.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.07.2018, 22:02     Titel:
  Antworten mit Zitat      
Hat sich schon erledigt habe es herausgefunden wie es geht:

Code:
n=input('Please enter the dimension n of the matrix:');
B = zeros(n);

for i = 1:n
    B(i,i)=1;
end
for i = 1:n-1
    B(i+1:n,i) = 2;
    B(i,i+1:n) = -2;
end

disp(B)


Danke für die Hilfe! Smile
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.