Hei,
schonmal vielen Dank!
Hab das ganze jetzt mal getestet und passt :)
Hintergrund ist der, dass mein Achsvektor auch mal um die 100.000 Einträge haben kann.
Ich hab im Netz gelesen das man bei Berechnungen Zeittechnisch mit dem :-Operator besser
bedient ist wie mit Schleifen.
Ich hab mir das folgendermaßen vorgestellt:
%Daten lesen
achse = %Datei auslesen...
Rot = @(x)[repmat([1,0,0],[1,1,numel(achse)]);zeros(1,1,numel(achse)),cosd(x),sind(x);zeros(1,1,numel(achse)), sind(x),cosd(x)];
Rot(achse)
punkt = [0;0;1];
rot_punkte(:,1) = Rot(:,:,:) * punkt
Also ich les z.B. 1000 Werte ein. Damit errechne ich mir 1000 Rotationsmatrizen (unterschiedliche Winkel,
unterschiedliche Matrizen...). Mit den Matrizen kann ich dan den Rotierten Punkt berrechnen.
Die letzte Zeile im Codebsp. funktioniert nicht. Bekomme immer den folgenden Fehler:
Error using *
Inputs must be 2-D, or at least one input must be scalar.
To compute elementwise TIMES, use TIMES (.*) instead.
Wobei die Rechnung so Funktioniert wenn ich die Matrix von Hand aufstellen.
Also
rot_punkt = Rot * punkt
Ich glaube ich versteh den :-Operator noch nicht ganz...
Aber wenn du sagt das die Schleifenlösung auch nicht schlecht ist, stellt sich ja Grundsätzlich nochmal
die Frage ob es sorum überhaupt Sinn macht? Wobei es wahrscheinlich mal eine gute Übung währe.
↧