#matlab #for-loop
#matlab #for-цикл
Вопрос:
Я хочу выполнить цикл for в matlab только для определенных чисел. моя проблема в том, что я хочу, чтобы они возвращались как 5 разных матриц 3×3, но мой код возвращает только одну матрицу 15×3. вот мой код:
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:
Ошибка, которую вы делаете, заключается в том, что ваш код не принимает каждое значение 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