Converting a 2d vector to a 4d vector

조회 수: 2 (최근 30일)
Basu Sau
Basu Sau 2019년 2월 25일
댓글: Basu Sau 2019년 2월 25일
In a machine learning task, I need a 4d single type data to fed for training. But my data is in a 2d format. Would you please show me how to do this conversion.
Input:
for data of 28th row,
val(28,1)=1.5
val(28,2)=2.7
output:
val(:,:,1,28)=1.5
val(:,:,2,28)=2.7
I m looking for your advice in this regard.
Thanks,

채택된 답변

ANKUR KUMAR
ANKUR KUMAR 2019년 2월 25일
Let's take a random data A
A=randi(10,30,2);
Use permute to change into 4D
B=permute(A,[3,4,2,1]);
Now, B(:,:,2,24) and A(24,2) are same.
>> B(:,:,2,24)==A(24,2)
ans =
logical
1
  댓글 수: 3
ANKUR KUMAR
ANKUR KUMAR 2019년 2월 25일
편집: ANKUR KUMAR 2019년 2월 25일
First input of permute is the data itself.
Second input is in the row matrix which contains the sequence of dimension you wish to put it.
For example, in B, we have stored first the fourth dimension, then the thrid dimension, followed by second and first.
If we write,
B=permute(A,[3,4,1,2]);
then
>> B(:,:,24,2)==A(24,2)
ans =
logical
1
SIMPLE EXAMPLE
>> A=magic(5)
A =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
>> permute (A,[2,1])
ans =
17 23 4 10 11
24 5 6 12 18
1 7 13 19 25
8 14 20 21 2
15 16 22 3 9
Permute simply changes the dimension as per your input in purmute command.
Basu Sau
Basu Sau 2019년 2월 25일
thanks ankur for a such explainatory comment

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

추가 답변 (1개)

madhan ravi
madhan ravi 2019년 2월 25일
Aternatively:
[m,n]=size(val);
Val=reshape(val.',1,1,n,m)

카테고리

Help CenterFile Exchange에서 Dimensionality Reduction and Feature Extraction에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by