How to convert 4D double matrix into 2D arrays

8 visualizzazioni (ultimi 30 giorni)
Hi
I'm sorry for my English :(
I'm trying to convert 4-D double matrix into 2D arrays
There are a total of 14 different scenarios, each represented by a matrix of size 1x101 in the program. The representation in 4D is structured as (:,:,1,1) through (:,:,101,1) for the first scenario, (:,:,1,2) through (:,:,101,2) for the second scenario, and so on, up to (:,:,1,14) through (:,:,101,14) for the fourteenth scenario. Each set of indices within the 4D structure corresponds to a unique value in the respective scenario.
Thank you so much
  8 Commenti
Dyuman Joshi
Dyuman Joshi il 13 Nov 2023
Yes, that's what I meant.
Ok, there are 2 singleton dimensions.
Now, What is the output you want? A 101x14 array?

Accedi per commentare.

Risposta accettata

Dyuman Joshi
Dyuman Joshi il 13 Nov 2023
Use squeeze -
in = rand(1,1,101,14);
size(in)
ans = 1×4
1 1 101 14
out = squeeze(in);
size(out)
ans = 1×2
101 14
  10 Commenti
Sung Wook Choi
Sung Wook Choi il 15 Nov 2023
Thank you so much! Finally, may I ask what the difference is between the 'out1' and 'out2' matrices? They appear to be the same, and I couldn't identify any distinctions.
Also, when you use 'squeeze,' it removes two singletons. Does 'squeeze' mean removing all singletons in a matrix?
Dyuman Joshi
Dyuman Joshi il 15 Nov 2023
You are welcome!
Yes, they are the same.
For the second one, I have just combined all the steps in one command.
Yes, 'squeeze' removes all the singleton dimensions of an array.

Accedi per commentare.

Più risposte (0)

Prodotti


Release

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by