Add a 2D matrix to a 3D matrix in a specific location

11 vues (au cours des 30 derniers jours)
Robert
Robert le 13 Nov 2015
Modifié(e) : Stephen23 le 13 Nov 2015
Say I have 2 Matrices
A = 10x10x10
B = 10x10
I want to ad B to A at a certain dimension e.g. (:,:,6) such that A becomes 10x10x11
How can I do this?

Réponses (2)

Stalin Samuel
Stalin Samuel le 13 Nov 2015
l = length(A);
d = 6;%dimension where we need to insert B
New_A(:,:,1:d-1) = A(:,:,1:d-1);
New_A(:,:,d) = B;
New_A(:,:,d+1:l+1) = A(:,:,d:l);

Stephen23
Stephen23 le 13 Nov 2015
Modifié(e) : Stephen23 le 13 Nov 2015
Method One: Indexing
>> A = randi(10,3,3,3)-1; % 3x3x3
>> B = nan(3,3); % 3x3
>> C(:,:,[1:2,4]) = A; % add A to pages [1,2,4]
>> C(:,:,3) = B % Add B to page 3
C(:,:,1) =
2 7 4
9 7 2
3 7 2
C(:,:,2) =
0 6 4
7 7 2
4 8 3
C(:,:,3) =
NaN NaN NaN
NaN NaN NaN
NaN NaN NaN
C(:,:,4) =
7 0 5
9 7 4
6 6 3
Method Two: cat and Indexing
>> D(:,:,[1,2,4,3]) = cat(3,A,B)
D(:,:,1) =
2 7 4
9 7 2
3 7 2
D(:,:,2) =
0 6 4
7 7 2
4 8 3
D(:,:,3) =
NaN NaN NaN
NaN NaN NaN
NaN NaN NaN
D(:,:,4) =
7 0 5
9 7 4
6 6 3

Catégories

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

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by