Effacer les filtres
Effacer les filtres

How to make a 3D Matrix

6 vues (au cours des 30 derniers jours)
Nicholas Deosaran
Nicholas Deosaran le 3 Sep 2020
Modifié(e) : Jon le 14 Sep 2020
How to make a 3D Matrix that contains all ones in the first layer, all twos in the second layer and all threes in the third layer?
  5 commentaires
Abdolkarim Mohammadi
Abdolkarim Mohammadi le 3 Sep 2020
Size = [5,6,3];
M = ones(Size) .* permute([1;2;3],[3,2,1]);
Nicholas Deosaran
Nicholas Deosaran le 3 Sep 2020
Thank you!

Connectez-vous pour commenter.

Réponse acceptée

Jon
Jon le 3 Sep 2020
Modifié(e) : Jon le 3 Sep 2020
You can also do it like this, for example for a 2 by 4 by 3
A = ones(2,4,3).*reshape(1:3,1,1,3)
  4 commentaires
Abdolkarim Mohammadi
Abdolkarim Mohammadi le 11 Sep 2020
A simple way to reach the matrix you wanted is to create a m-by-n-by-k array of ones and then multiply it by a 1-by-1-by-k array of 1 to k. The trick is to first create a 1-by-k array and then permute it to ge the so-called 1-by-1-by-k array. You can permute it in different ways, including the permute() function and reshape().
Jon
Jon le 14 Sep 2020
Modifié(e) : Jon le 14 Sep 2020
You asked about what the reshape function does.
The reshape(1:3,1,1,3) The first argument 1:3 makes a 3 element row vector with elements [1, 2, 3]the second, third and fourth arguments specify that we want to turn this row vector into a 1 row, by 1 column, by 3 "page" array. So 1 goes in the 1,1,1 location of the first page, 2 goes into th 1,1,2 location on the second page and 3 goes into the 1,1,3 location on the third page. By shaping it this way the array dimension for the multiplication
ones(2,4,3).*reshape(1:3,1,1,3)
Also type doc reshape on the command line to get documentation on the reshape function for further details

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by