Concatenate 3-D matrix in a for loop

조회 수: 3 (최근 30일)
Joana
Joana 2021년 5월 6일
댓글: Stephen23 2021년 5월 6일
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
Sambit Supriya Dash 2021년 5월 6일
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