Create a 3D matrix from 2 2D matrix

조회 수: 5 (최근 30일)
K3iTH
K3iTH 2022년 11월 4일
편집: Manish 2024년 9월 16일
Hi all,
I want to create a 3D matrix from three 2D matrix with different size.
The first matrix has the size of 360x560 which contain the information of grid for x.
The second matrix has the same size (360x560) and has the grid details of z.
The third matrix has the size of 100x560 and it contain the detail of grid for y.
To simply, the size of x, y and z are 560, 360 and 100.
I would like to create a 3D matrix with a size of 100x360x560 with grid information for the x, y and z direction.
May I know how to achieve that? I have attached a test.mat file that include x, y and z.
Thanks for your help!
  댓글 수: 2
KSSV
KSSV 2022년 11월 4일
y is of size 100x1. What exactly you want? What is your data about?
K3iTH
K3iTH 2022년 11월 4일
Hi KSSV,
I have reupload the file, y suppose to have a size of 100x560.
I want to generate a 3D matrix which consist the data of grid for simulation. x and z matrix contains the grid information for x-z plane and y consist the grid details for x-y plane. I want to generate a 3D matrix that have x,y and z grid information. I am not sure if cat function is works for matrix with different size.
Thank you.

댓글을 달려면 로그인하십시오.

답변 (1개)

Manish
Manish 2024년 9월 16일
편집: Manish 2024년 9월 16일
Hi K3iTH,
I understand that you want to create a 3D matrix (100x360x560) from the matrices x (360x560), y (100x560), and z (360x560).
You can achieve this with the help of the reshape’ function. Refer to the link below for a better understanding:
Here is a code example:
% Load the data from the .mat file
load('test.mat');
% Initialize the 3D matrix
resultMatrix = zeros(100, 360, 560);
% Reshape matrices for implicit broadcasting
x_expanded = reshape(x, [1, 360, 560]); % Reshape x to broadcast over the first dimension
y_expanded = reshape(y, [100, 1, 560]); % Reshape y to broadcast over the second dimension
z_expanded = reshape(z, [1, 360, 560]); % Reshape z to broadcast over the first dimension
% Combine the matrices using implicit broadcasting
resultMatrix = x_expanded + y_expanded + z_expanded;
Hope it hepls!

카테고리

Help CenterFile Exchange에서 Mathematics에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by