Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi test

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!

Problem 1972. Convert matrix to 3D array of triangular matrices

Created by Matt Eicholtz

Given a 2D numeric array x in which each column represents the vectorized form of an upper triangular matrix, return a 3D array y containing the concatenated triangular matrices.

  • If the size of the input matrix x is MxN, then the size of the output matrix y is PxPxN, where M = sum(1:P)
  • You may assume that P<=100

Example

If

x = 1  7 13
    2  8 14
    3  9 15
    4 10 16
    5 11 17
    6 12 18

then

y(:,:,1) =  1  2  4
            0  3  5
            0  0  6
y(:,:,2) =  7  8 10
            0  9 11
            0  0 12
y(:,:,3) = 13 14 16
            0 15 17
            0  0 18

NOTE: If you are wondering why this seems like a strange task, it is inspired by a genotype->phenotype mapping I am doing in a genetic algorithm.

Problem Group

Solution Statistics

14 correct solutions 5 incorrect solutions
Last solution submitted on Nov 02, 2014