Помогите, пожалуйста, в решении задачи в среде Matlab.
Как создать 100 диагональных матриц 5 на 5, имея прямоугольную матрицу размером 100 на 5. Что б диагонали каждой матрицы стояли элементы ряда матрицы 100 на 5?
Документ с примером матриц прикреплен ниже.
Ответы
A=zeros (100,5);
A=[ 5 4 6 ..
];
a=zeros (5,5);
d {100,5}
for i=1:100
for j=1:5
a(i,i)=A (i,j);
end
d {i}=a;
end
Спасибо большое
В Матлабе рекомендуется по возможности циклы не применять.
Допустим, имеется матрица А размером 100х5
Код:
B=num2cell(1:100);
B=cellfun(@(x)A(x,:),B,"UniformOutput",false);
B=cellfun(@diag,B,"UniformOutput",false);
Спасибо большое