对于Matlab中特定数字范围的循环

时间:2016-10-08 21:58:57

标签: matlab for-loop

我想在matlab中为特定数字执行for循环。我的问题是我希望它们作为5个不同的3x3矩阵返回,但我的代码只返回一个矩阵15x3。这是我的代码:

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

谢谢

1 个答案:

答案 0 :(得分:1)

您所犯的错误是您的代码不会单独使用a的每个值。它将它作为向量,并且您的for循环在此处不执行任何操作。以下是它的修复方法:

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