3D Matrix to 2D Matrix
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Adan91h
am 4 Mär. 2017
Kommentiert: Star Strider
am 4 Mär. 2017
I have four 3D matrix like Y= ones(2,2,4) and i want to make a new matrix like YT=zeros(8,8).
I want to take values from 3D "Y" matrix and insert them into 2D "YT" matrix in a following fashion
YT(1,1)=Y(1,1,1)
YT(1,2)=Y(1,2,1)
YT(2,1)=Y(2,1,1)
YT(2,2)=Y(2,2,1)
YT(3,3)=Y(1,1,2)
YT(3,4)=Y(1,2,2)
YT(4,3)=Y(2,1,2)
YT(4,4)=Y(2,2,2)
YT(5,5)=Y(1,1,3)
YT(5,6)=Y(1,2,3)
YT(6,5)=Y(2,1,3)
YT(6,6)=Y(2,2,3)
YT(7,7)=Y(1,1,4)
YT(7,8)=Y(1,2,4)
YT(8,7)=Y(2,1,4)
YT(8,8)=Y(2,2,4)
Can some one suggest me what would be the best way to do this thing automatically? I only assume the values of Y to 1,1,1,1 but in my real case, values of Y are different complex numbers.
0 Kommentare
Akzeptierte Antwort
Star Strider
am 4 Mär. 2017
Bearbeitet: Star Strider
am 4 Mär. 2017
This works:
y = 1:16; % Create Data
Y = reshape(y, 2, 2, 4); % Create Data
RY = reshape(Y(:), 2, []); % Reshape ‘Y’
RC = mat2cell(RY, 2, ones(1,size(RY,2)/2)*2); % Create Submatrices
YT = blkdiag(RC{:}) % Create ‘YT’
4 Kommentare
Star Strider
am 4 Mär. 2017
My pleasure! Thank you for your compliment!
(I apologize for the earlier confusion. I’m UTC-7 here, and wasn’t fully awake then.)
Weitere Antworten (1)
John BG
am 4 Mär. 2017
Bearbeitet: John BG
am 4 Mär. 2017
Hi Adnan
1.
generating test matrices
Y=randi([-10 10],2,2,4)
YT=zeros(8,8)
YT([1 2],[1 2])=Y(:,:,1)
YT([3 4],[1 2])=Y(:,:,2)
YT([5 6],[1 2])=Y(:,:,3)
2. moving values
[sz1 sz2 sz3]=size(Y)
for k=1:1:sz3
YT([2*k-1 2*k],[2*k-1 2*k])=Y(:,:,k)
end
3. the values of Y and YT can be complex, there's no need to build 2 matrices containing real and imaginary parts.
if you find this answer useful would you please be so kind to mark my answer as Accepted Answer?
To any other reader, please if you find this answer of any help solving your question,
please click on the thumbs-up vote link,
thanks in advance
John BG
0 Kommentare
Siehe auch
Kategorien
Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!