MATLAB Extracting a Column from a 4D Double Array in MATLAB using Squeeze

AI Thread Summary
To access a column of values from the fourth dimension of a 4D double array in MATLAB and save them to a new matrix, the correct approach involves using the `squeeze` function. For example, given a 4D array A, using `squeeze(A(1,1,1,:))` extracts the desired values into a vector format. This method resolves the issue of obtaining a 3D output instead of the intended 1D vector. The discussion emphasizes the importance of understanding MATLAB's array subscripting and the utility of the `squeeze` function in simplifying array dimensions.
afallingbomb
Messages
16
Reaction score
0
Hello,

I'd like to access a column of values from the 4th dimension of a 4D Double array in MATLAB and then save them to a new matrix.

For example:

A = rand(3,3,3,3);
A(1,1,1,:)

gives me:

ans(:,:,1,1) =
0.7077

ans(:,:,1,2) =
0.0669

ans(:,:,1,3) =
0.7794

I want to create a new matrix, B, with those values but specifying B = A(1,1,1,:) results in the same output above. I want a vector in this form:

0.7077
0.0669
0.7794

Thank you!
 
Physics news on Phys.org
Your use of the colon operator is incorrect. See the Matlab docs on this subject for an explanation of how to subscript an array in the way you want.
 
Just put squeeze in front.

squeeze(A(1,1,1,:))
 
Thanks, Matonski. Squeeze does the trick!
 

Similar threads

Replies
10
Views
3K
Replies
1
Views
1K
Replies
6
Views
8K
Replies
1
Views
9K
Replies
1
Views
21K
Replies
3
Views
2K
Replies
1
Views
3K
Back
Top