Fill up submatrix along third dimension with two dimensional matrix

2 visualizaciones (últimos 30 días)
Given a p by p by N array, e.g. p=3 and N=4,
x = NaN(3,3,4);
I can easily fill up the 1 by 1 by N submatrix given a "1 by 1 matrix"doing
x(1,1,:) = 1;
But what if I want to fill up the 2 by 2 by N submatrix like this
x(1:2,1:2,:) = [1 2; 3 4];
This does not work.
How could I do it elegantly?

Respuesta aceptada

Bruno Luong
Bruno Luong el 29 de Ag. de 2022
Editada: Bruno Luong el 29 de Ag. de 2022
x(1:2,1:2,:) = repmat( [1 2; 3 4], 1, 1, size(x,3));
I would love to have MATLAB indexing to behave with auto expansion, but probably many users would be unhappy and complain because of coding error becoming silence.

Más respuestas (1)

Torsten
Torsten el 29 de Ag. de 2022
x = NaN(3,3,4);
x(1:2,1:2,:) = repmat([1 2; 3 4],1,1,4);
x
x =
x(:,:,1) = 1 2 NaN 3 4 NaN NaN NaN NaN x(:,:,2) = 1 2 NaN 3 4 NaN NaN NaN NaN x(:,:,3) = 1 2 NaN 3 4 NaN NaN NaN NaN x(:,:,4) = 1 2 NaN 3 4 NaN NaN NaN NaN

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Productos


Versión

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by