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

Diagonalmatrix mit Nebendiagnoalwerten

 

Matlabbeginner1
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 25.10.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.10.2018, 14:08     Titel: Diagonalmatrix mit Nebendiagnoalwerten
  Antworten mit Zitat      
Hallo, ich bin absoluter Matlab Anfänger und soll für die Uni folgende Aufgabe lösen:

Erstelle mithilfe von Schleifen eine 10x10 Matrix mit den Diagonalwerten "1" sowie den Nebendiagonalwerten "4". Die restlichen Einträge der Matrix sollen der Summe der Indizes entsprechen.

Kann man erstmal eine Einheitsmatrix mit I=eye(10) erstellen und dann mit diag(4,-1) bzw. diag(4,1) weiter machen?

Kann mir da wer helfen?

Vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen


equi
Forum-Century

Forum-Century


Beiträge: 123
Anmeldedatum: 07.03.17
Wohnort: Tübingen
Version: Matlab 2018a
     Beitrag Verfasst am: 25.10.2018, 14:49     Titel:
  Antworten mit Zitat      
Es ist sicherlich sinnvoll sich erstmal die Matrrixmit 10x10 zu erstellen.
Das mit diag kann ich dir nicht sagen ob es funktioniert bzw wie es funktioniert.

Aber du kannst mittels 2 for schleifen und if schleifen deine Matrix füllen.
(sicherlich nicht die eleganteste Art aber es funktioniert)

Eine for-Schleife ist für die Anzahl der Spalten und eine für die Anzahl der Zeilen.
Zitat:

for i=size(Matrix,1)
for ...

_________________

Grüße Equi Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
salerc
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 51
Anmeldedatum: 23.04.18
Wohnort: ---
Version: R2021a
     Beitrag Verfasst am: 09.11.2018, 12:40     Titel:
  Antworten mit Zitat      
Hallo,

da es in der Aufgabenstellung "mit Schleifen" heißt, ist equis Antwort schon richtig.

Trotzdem möchte ich noch eine schnelle Alternative liefern, wie es auch mit diag geht:

Code:

n=10;
M = zeros(n);
for i=1:n
    M(i,:) = i+1:n+i;
end

M(logical(eye(n))) = 1;
M(logical(diag(ones(n-1,1), -1))) = 4;
M(logical(diag(ones(n-1,1), 1))) = 4;
 


Hier erzeuge ich mir erst durch die for-Schleife die grundlegende Struktur und setze dann nur die Elemente der Diagonalen und Nebendiagonalen, so wie ich sie haben möchte.

Viele Grüße
Salerc
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.