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

Matlab Schleifenbasierte Matrix

 

Matlabnoob1232

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.05.2021, 20:03     Titel: Matlab Schleifenbasierte Matrix
  Antworten mit Zitat      
Hallo, ich habe grade erst mit MATLAB angefangen und bin daher noch ein Anfänger. Es wäre sehr nett wenn mir jemand bei dieser Aufgabe helfen könnte.

Schreiben Sie eine schleifenbasierende MATLAB-Funktion matrix, an die 3 Werte a, b, c und eine ganze Zahl n übergeben werden. Die Funktion erzeugt eine nxn-Matrix und gibt
diese zurück.
Die Matrix wird wie folgt abgebildet:
-Die Elemente auf der diagonalen der Matrix besitzen jeweils den Wert a,
-Die Elemente im oberen Dreieck den Wert b und
-Die Elemente im unteren Dreieck den Wert c.

M=
a b b b
c a b b
c c a b
c c c a

Testen Sie Ihre Funktion mit den Zahlen n=5, a=1; b=2, c=3 und geben Sie die
Matrix M mit disp aus.
Die Funktion matrix soll mit einem error abgebrochen werden, falls weniger als 4
Parameter übergeben werden.


Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 12.05.2021, 20:20     Titel:
  Antworten mit Zitat      
Arbeite bitte das Matlab-Onramp durch.
Dann kannst du die Aufgabe stück für Stück bearbeiten und bei einer konkreten Frage hier nochmal fragen.

https://de.mathworks.com/learn/tutorials/matlab-onramp.html
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
Matlabnoob1232

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.05.2021, 20:28     Titel:
  Antworten mit Zitat      
Danke für die schnelle Antwort und für die Empfehlung des "Lehrgangs". Ich kannte diese nicht und ich werde diese auf jeden fall durchführen. Leider muss ich dies bis morgen fertig haben Sad Ich komme null weiter, da mir der Ansatz fehlt...
 
Harald
Forum-Meister

Forum-Meister


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

du brauchst zwei geschachtelte for-Schleifen, eine über die Zeilen und eine über die Spalten. Fang doch mal an und melde dich bei Fragen.

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
 
Matlabnoob1232

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.05.2021, 21:51     Titel:
  Antworten mit Zitat      
Danke für die Antwort. Wie geht das? Wenn ich mir Beispiele anschaue verstehe ich nicht wie ich das auf das Beispiel anwenden soll. Benutze matlab seit 2 Tagen und mir liegt sowas leider nicht...
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.05.2021, 22:02     Titel:
  Antworten mit Zitat      
Hallo,

wenn du nicht schreibst, welche Beispiele du dir ansiehst, kann man dir auch schlecht sagen, wie du sie anpassen kannst.

Wie wäre z.B.
Code:
for row = 1:n
     for col = 1:n
          if    % eine Bedingung
              A(row, col) =    % hier etwas hin schreiben
          else
              A(row, col) =    % da etwas anderes hin schreiben
          end
     end
end


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
 
Matlabnoob1232

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.05.2021, 22:17     Titel:
  Antworten mit Zitat      
Ja verstehe da zum Beispiel nicht wie ich jetzt die Bedingung mache, dass er in der Matrix überprüft welcher Buchstabe dort hin muss und müssten es nicht 3 verzweigungen sein weil ich a,b und c einsetzen muss?
Sorry wenn das dumme fragen sind aber ich bin echt untalentiert wenn es um solche Themen geht Smile
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.05.2021, 22:46     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Ja verstehe da zum Beispiel nicht wie ich jetzt die Bedingung mache

Was haben die Elemente auf der Diagonale, oberhalb und unterhalb jeweils bzgl. Zeilen- und Spaltenindex miteinander gemeinsam? Auf der Diagonale sind sie ja gleich, und wie sieht es darüber und darunter aus?

Zitat:
müssten es nicht 3 verzweigungen sein

Stimmt. Und wie du das machst, steht oben in der Dokumentation von if.

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
 
Matlabnoob1232

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.05.2021, 22:58     Titel:
  Antworten mit Zitat      
[code]% Das ist mein Programm.

for row = 1:n
for col = 1:n
if row==col % eine Bedingung
A(row, col) = 'a' % hier etwas hin schreiben
else if row>col
A(row, col) = 'c' % da etwas anderes hin schreiben
else
A(row, col) = 'b' % da etwas anderes hin schreibe
end
end
end


So ist richtig oder? Was muss ich als nächtes machen?
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.05.2021, 23:06     Titel:
  Antworten mit Zitat      
Hallo,

wenn a - c Zahlen sind, die Hochkommas weglassen. elseif ist zudem ein Schlüsselwort ohne Leerzeichen.
Die Aufgabenstellung verlangt eine Funktion. Das wäre also der nächste Schritt.
https://de.mathworks.com/help/matla.....e-functions-in-files.html

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
 
Matlabnoob1232

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.05.2021, 23:19     Titel:
  Antworten mit Zitat      
Code:
function m = matrix(n)
   

for row = 1:n
     for col = 1:n
          if row==col    % eine Bedingung
              A(row, col) = a   % hier etwas hin schreiben
          elseif row>col
              A(row, col) = c   % da etwas anderes hin schreiben
          else a-c
              A(row, col) = b   % da etwas anderes hin schreibe
          end
     end
end


So? Hab das nicht so ganz verstanden, hoffe ist richtig
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.05.2021, 23:35     Titel:
  Antworten mit Zitat      
Hallo,

lies dir doch die Aufgabe genau durch:
Zitat:
Schreiben Sie eine schleifenbasierende MATLAB-Funktion matrix, an die 3 Werte a, b, c und eine ganze Zahl n übergeben werden. Die Funktion erzeugt eine nxn-Matrix und gibt diese zurück.


Es ist nicht sinnvoll, ein m als Ausgabeargument zu definieren und das nirgends sonst in der Funktion zu verwenden.

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
 
Matlabnoob1232

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.05.2021, 23:40     Titel:
  Antworten mit Zitat      
Muss dort auch ein n stehen?

Übrigens danke für deine Geduld und Hilfe echt nett Smile
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.05.2021, 23:49     Titel:
  Antworten mit Zitat      
Hallo,

Laut Aufgabenstellung sollst du (auch) a, b, c übergeben und die Matrix zurückgeben. Wie heißt die Matrix denn bei dir? Doch A, und nicht m oder n. Was musst du also zurückgeben?

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
 
Matlabnoob1232

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.05.2021, 23:58     Titel:
  Antworten mit Zitat      
Code:
function A = matrix(n,a,b,c)
   

for row = 1:n
     for col = 1:n
          if row==col    % eine Bedingung
              A(row, col) = a   % hier etwas hin schreiben
          elseif row>col
              A(row, col) = c   % da etwas anderes hin schreiben
          else a-c
              A(row, col) = b   % da etwas anderes hin schreibe
          end
     end
end


Ahhhh verstehe jetzt das Prinzip! So müsste es bis jetzt alles richtig sein oder? Was ist der nächste Schritt?
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.