2016-10-08 4 views
0

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

Спасибо

ответ

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 
Смежные вопросы