|
|
Werte nach 2 for-Schleifen in Matrix speichern |
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.01.2016, 15:14
Titel: Werte nach 2 for-Schleifen in Matrix speichern
|
 |
Hallo,
Ich habe folgenden Input
Winkel Laenge
15 2,4,6
45 3,5,7
Für jeden Winkel soll nun bei den Laengen der Wert C ausgerechnet werden. Das habe ich mit 2 For-Schleifen gemacht.
for i=1: Zeilenanzahl
winkel=...
for j=1 : Spaltenanzahl
laenge=....
...
C=...
end
end
Da der Code mit der Berechnung etwas komplizierter ist, habe ich den Teil mal so eingefügt. Es werden definitiv mit dem Code alle Werte richtig berechnet. Nun möchte ich die Ergebnisse gerne in eine Matrix schreiben. Die sollte dann wie folgt aus sehen:
Winkel Länge Wert
15;2;c1
15;4;c2
15;6;c3
45;3;c4
45;5;c5
45;7;c6
Leider werden bei mir die alten Werten mit den neuen immer überschrieben, sodass ich mit
M(j,:)=[Winkel Laenge C]
nur folgende Matrix bekomme
45;3;c4;
45;5;c5;
45;7;c6;
Kennt jemand die Lösung des Problems? Brauche ich dafür dann eine weitere for-schleife?
Danke und Grüße
|
|
|
|
|
ro_mat |

Forum-Century
|
 |
Beiträge: 158
|
 |
|
 |
Anmeldedatum: 20.10.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.01.2016, 16:06
Titel:
|
 |
Denke das Problem liegt an deinem j - wenn j die zählvariable für die Spalten ist, dann geht diese nur bis 3 (da du ja drei spalten hast)!
Wenn du deine Matrix dann so aufbaust --> M(j, =[Winkel Laenge C] - dann wird diese Matrix nie mehr als 3 Zeilen haben --> muss wahrscheinlich M(i, heißen oder?
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 08.01.2016, 16:14
Titel: Re: Werte nach 2 for-Schleifen in Matrix speichern
|
 |
Hallo,
Zitat: |
Ich habe folgenden Input
Winkel Laenge
15 2,4,6
45 3,5,7 |
Ist das ein Cell array oder zwei Matrizen? Bitte poste die Inputs in valider Matlab-Syntax, denn dann sind sie eindeutig klar.
Zitat: |
Winkel Länge Wert
15;2;c1
15;4;c2
15;6;c3
45;3;c4
45;5;c5
45;7;c6 |
Das ist auch keine valide Matlab-Syntax. Welchen Typ hat dieses Array? Was ist "c1", "c2", ...? Wieso stehen Semicolons zwischen den Elementen?
Wenn sich der Winkel nur in der "for i" Schleife ändert, wieso speicherst Du ihn dann in "M(j,:)=[Winkel Laenge C]" zu jedem Element von C mit ab?
Ich nehme an, Du brauchst ein 3D-Array und "i" muss auch als Index verwendet werden.
Gruß, Jan
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.01.2016, 16:48
Titel:
|
 |
|
 |
|
Hey,
das sind 2 Matrizen. Ich hoffe, die Schreibweise ist besser:
Winkel=[15;45]
Laenge=[2,4,6;3,5,7]
Mit der Laenge 2 soll nun mit dem Winkel 15 der Wert c1 berechnet werden. Mit der Laenge 4 und dem Winkel 15 der Wert c2 usw. Die c-Werte variieren je Winkel und Laenge, sodass ich insgesamt sechs c-Werte berechne. Die Werte c1, c2 usw. sind also meine berechneten Werte.
Ich möchte den verwendeten Winkel, die verwendete Länge und den berechneten C-Wert in ein Matrix einspeicher, die dann so aussehen soll:
[15, 2, cp1; 15, 4, cp2; 15, 6, cp3; 45, 3, cp4; 45, 5, c5;45, 7, c6]
ro_mat hat Folgendes geschrieben: |
Denke das Problem liegt an deinem j - wenn j die zählvariable für die Spalten ist, dann geht diese nur bis 3 (da du ja drei spalten hast)!
Wenn du deine Matrix dann so aufbaust --> M(j,:)=[Winkel Laenge C] - dann wird diese Matrix nie mehr als 3 Zeilen haben --> muss wahrscheinlich M(i,:) heißen oder? |
Mit M(i,:) klappt es leider auch nicht. Auch hier werden Werte überschrieben. Output ist dann:
M=[15,6,c3;45,9.c6]
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 08.01.2016, 22:08
Titel:
|
 |
Hallo,
Zitat: |
[15, 2, cp1; 15, 4, cp2; 15, 6, cp3; 45, 3, cp4; 45, 5, c5;45, 7, c6]
|
Was ist "cp1" und "c5"?
Kannst Du einen lauffähigen Code posten? Und ein konretes Beispiel mit echten Zaheln?
Gruß, Jan
|
|
|
ro_mat |

Forum-Century
|
 |
Beiträge: 158
|
 |
|
 |
Anmeldedatum: 20.10.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.01.2016, 11:14
Titel:
|
 |
Hallo,
ich hoffe du brauchst es noch denn ich denk ich habe was dir gefehlt hat! Ich weiß ja nicht wie deine beiden for-Schleifen aufgebaut sind, doch in Anlehnung an die bestehenden Matrizen(Winkel, Laenge) kann deine End-Matrix so konstruiert werden:
Führe ich diesen Code mit deinen angegebenen Werten durch, so bekomme ich die End-Matrix nach deiner gewünschten Form
Ich gehe davon aus das du teile dieses Codes in deine bestehenden Schleifen einfügen kannst, da die Berechnung und das Einfügen in die End-Matrix sicher simultan ablaufen kann!
Hope that helps - ansonsten nachfragen
Lg
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|