Effacer les filtres
Effacer les filtres

Concatenate 3-D matrix in a for loop

12 vues (au cours des 30 derniers jours)
Joana
Joana le 6 Mai 2021
Commenté : Stephen23 le 6 Mai 2021
Hi
I have 25 matrices of 3-D 150x66x1000. I need to concatenate them in a for loop to get an output of 3750x66x1000.
How can i do that.?
  1 commentaire
Stephen23
Stephen23 le 6 Mai 2021
" I need to concatenate them in a for loop..."
Why do you need to use a FOR loop?
Using VERTCAT or CAT would be simpler and probably more efficient.

Connectez-vous pour commenter.

Réponse acceptée

Stephen23
Stephen23 le 6 Mai 2021
Modifié(e) : Stephen23 le 6 Mai 2021

Plus de réponses (2)

KSSV
KSSV le 6 Mai 2021
A = rand(2,3,4) ;
B = rand(2,3,4) ;
C = cat(1,A,B)
  2 commentaires
Joana
Joana le 6 Mai 2021
Thanks for the comment. But can you please help me with the loop thing.?
KSSV
KSSV le 6 Mai 2021
You have 25 matrices ... how they are named? How the data is?

Connectez-vous pour commenter.


Sambit Supriya Dash
Sambit Supriya Dash le 6 Mai 2021
With an example, I would like to answer this. Suppose, "a" is the given 3D Matrix
and "b" is the 2D matrix returns the concatenated "a"
a(:,:,1) = [1 2;3 4]; % a --> Given Tensor (3D Matrix) to be operated into matrix "b"
for i = 2:4
a(:,:,i) = a(:,:,i-1)+1; % Supposing elemental opeartion is incrementing element by 1
end
[x,y,z] = size(a); % Calculate the length of tensor in 3rd D
b = zeros(x,y*z);
for k = 1:z
for i = 1:x
for j = 1:y
b(i,j+2*(k-1)) = a(i,j,k); % Concatenating
end
end
end
% For Checking the Concatenation of 3D Elements
c = reshape(a,x,y*z);
if b == c
disp('CONCATENATION SUCCESSFUL')
disp(b)
else
disp('CONCATENATION FAILED')
end

Catégories

En savoir plus sur Creating and Concatenating Matrices 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