2016-10-08 3 views
0

Ich möchte eine for-Schleife in Matlab nur für eine bestimmte Anzahl. Mein Problem ist, dass ich sie als 5 verschiedene 3x3-Matrizen zurückgeben möchte, aber mein Code kehrt nur bei einer Matrix 15x3 zurück. hier ist mein Code:For Schleife für bestimmte Bereich von Zahlen in Matlab

for a = [0;10;20;30;45] 

    T = [ cosd(a).^2 sind(a).^2 -sind(2*a); 
     sind(a).^2 cosd(a).^2 sind(2*a); 
     .5*sind(2*a) -.5*sind(2*a) cosd(2*a)]; 
end 

danken Ihnen

Antwort

1

Der Fehler, den du tust, ist, dass Ihr Code bei jedem Wert von a separat nicht statt. Es nimmt es als Vektor und Ihre for Schleife macht hier nichts. Hier ist, wie es behoben werden kann:

a = [0;10;20;30;45]; 

T = zeros(3,3,5); %Pre-allocation 
for k=1:numel(a) 
    T(:,:,k) = [ cosd(a(k)).^2  sind(a(k)).^2 -sind(2*a(k)); 
       sind(a(k)).^2  cosd(a(k)).^2  sind(2*a(k)); 
       .5*sind(2*a(k)) -.5*sind(2*a(k))  cosd(2*a(k)) ]; 
end 
Verwandte Themen