# to convert a row into 3d matrix having all combinations

1 view (last 30 days)
ABDUL on 7 Feb 2018
Commented: Matt J on 8 Feb 2018
i have a piece of code p=[1 -1 1j -1j] i want to convert this 1x4 matrix into 256X4x2 matrix. how to fix this bug .

Guillaume on 7 Feb 2018
what should go into those 256x2 entries? What bug?
ABDUL on 7 Feb 2018
how to convert it into 256x4x2 matrix

Matt J on 7 Feb 2018
Edited: Matt J on 7 Feb 2018
You've left us to do a lot of guessing as to what you want, but here's my guess,
[c{1:4}]=ndgrid(p);
result=reshape(cell2mat(c),256,4);

Ahmed Taha on 7 Feb 2018
i don't know what you exactly mean but i assumed the entries to the 3d matrix are the same as in the given vector, you can try the following code:
p=[1 -1 1j -1j];
for n=1:256
Matrix(n,:)=p;
end
Matrix(:,:,2)=Matrix(:,:,1);

Show 7 older comments
Matt J on 8 Feb 2018
When I run your code, I get a 512x4 matrix, not a 256x4x2 matrix.
>> whos B
Name Size Bytes Class Attributes
B 512x4 32768 double complex
Are you just trying to get a result in which B(:,:,1) contains all 256 combinations and B(:,:,1)=B(:,:,2)? If so, I don't know why you are duplicating the data, but just take my initial proposal and modify it as follows
[c{1:4}]=ndgrid(p);
result=reshape(cell2mat(c),256,4);
B=cat(3,result,result);
ABDUL on 8 Feb 2018
if i want to retain the same size of 512x4 what do i have to modify.
Matt J on 8 Feb 2018
B=cat(1,result,result);