我想在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
谢谢
答案 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