Filter löschen
Filter löschen

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

35 Ansichten (letzte 30 Tage)
Robert
Robert am 13 Nov. 2015
Bearbeitet: Stephen23 am 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?

Antworten (2)

Stalin Samuel
Stalin Samuel am 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 am 13 Nov. 2015
Bearbeitet: Stephen23 am 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

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Tags

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by