Concatenate 3-D matrix in a for loop

5 次查看(过去 30 天)
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 个评论
Stephen23
Stephen23 2021-5-6
" 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.

请先登录,再进行评论。

采纳的回答

Stephen23
Stephen23 2021-5-6
编辑:Stephen23 2021-5-6

更多回答(2 个)

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

请先登录,再进行评论。


Sambit Supriya Dash
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

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by