• Регистрация
iryna1506
iryna1506 0.00
н/д

Преобразование матрицы

24.07.2020

Помогите, пожалуйста, в решении задачи в среде Matlab.

Как создать 100 диагональных матриц 5 на 5, имея прямоугольную матрицу размером 100 на 5. Что б диагонали каждой матрицы стояли элементы ряда матрицы 100 на 5?

Документ с примером матриц прикреплен ниже.

 

 

Теги

      24.07.2020

      Ответы

      • galekx2
        galekx20.00
        24.07.2020 21:39

        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

        • iryna1506
          iryna15060.00
          25.07.2020 04:06

          Спасибо большое

        • Centurio
          Centurio+42.00
          26.07.2020 15:08

          В Матлабе рекомендуется по возможности циклы не применять.

          Допустим, имеется матрица А размером 100х5

          Код:

          B=num2cell(1:100);
          B=cellfun(@(x)A(x,:),B,"UniformOutput",false);
          B=cellfun(@diag,B,"UniformOutput",false);

          • iryna1506
            iryna15060.00
            26.07.2020 15:14

            Спасибо большое