Verfasst am: 14.10.2016, 19:05
Titel: Matrix-Dimension Beibehalten, Aber Wie?
Hallo zusammen,
kenne mich mit MATLAB kaum aus und würde mich sehr auf Eure Hilfe freuen
Und zwar lautet die Aufgabe:
"B is a matrix given as [3 2 -1; -1 0 4; 4 4 7; 2 -2 -10]
Write a MATLAB function which check each element of the matrix one by one, and does the
following:
- subtract 5 if the value is positive
- add 5 if the value is negative
- makes the value equal to 15 if the value is zero."
Den Code habe ich folgendermaßen geschrieben:
Code:
B = [32-1; -104; 447; 2-2-10] for x = 1:12 if B(x) > 0
C(x) = [B(x) - 5];
elseif B(x) < 0
C(x) = [B(x) + 5];
elseif B(x) == 0
C(x) = [15];
end end
C
Keine Ahnung ob es die effizienteste Lösung ist aber sie funktioniert.
Gruß
Dimension
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 14.10.2016, 21:54
Titel:
Vielen lieben Dank Kraftkleber!
Hatte dies zwar ausprobiert, allerdings vergeblich. Wahrscheinlich war einfach irgendwas falsch
Nun bin ich mit einem zweiten Problem konfrontiert: Und zwar muss ich die Absolutsummen aller vier Zeilen berechnen und die größte Summe finden. Bis dahin keine Probleme. Allerdings soll das Programm zudem noch sagen, welche Zeile den größten Wert hat.
for i = 1:rows
for j = 1:columns
if B(i,j) > 0
C(i,j) = B(i,j) - 5;
elseif B(i,j) < 0
C(i,j) = B(i,j) + 5;
elseif B(i,j) == 0
C(i,j) = 15;
end end end
C
display('Absolute sum of the first row:');
S1 = sumabs(C(1,:)) display('Absolute sum of the second row:');
S2 = sumabs(C(2,:)) display('Absolute sum of the third row:');
S3 = sumabs(C(3,:)) display('Absolute sum of the fourth row:');
S4 = sumabs(C(4,:))
display('The largest absolute sumis the following:');
M = max([S1,S2,S3,S4])
Eine Möglichkeit wäre die Summe der Zeilen ans Ende der Zeile an deine Matrix zu schreiben und dann guckst du am Ende in welcher Zeile der größte Wert steht.
Ist sehr umständlich und ich denke das geht sicher einfacher aber ich bin halt auch noch nicht so lange dabei.
Dimension
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 15.10.2016, 13:00
Titel:
Ich habe mich wahrscheinlich etwas falsch ausgedrückt
Die absoluten Summen berechnet mir das Programm ja schon. Auch der Wert der größten Summe wird angezeigt. Was ich noch machen muss, ist, dass das Programm automatisch sagen soll, dass die Summe der zweiten Zeile die größte ist. Ich habe null Ahnung, wie ich das hinkriegen soll
Beim Ausdruck "Maximum" ist es eine gute Idee, sich die Dokumentation des Befehls
max
anzuschauen. Dort findet man die Beschreibung des 2. Outputs.
Gruß, Jan
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
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.