How to create three columns for matrix after indexing

2 次查看(过去 30 天)
Dear all, I have a 8X8X8 three dimensional matrix. I would like to create 512X4 matrix so that first column give the position of x, second column the position of y and third one for z position.
I have a code like this
nx = size(dyzw,1);
ny = size(dyzw,2);
nz = size(dyzw,1);
N = nx*ny*nz;
bigData = dyzw(:);
bigMatrix = zeros(N, 4);
for i = 1: N
bigMatrix(i,4) = bigData(i);
for j = 1: nx
for k = 1: ny
for l = 1:nz
bigMatrix(i,1) =j;
bigMatrix(i,2) =k;
bigMatrix(i,3) =l;
end
end
end
end
But I failed to produce the matrix as I want. Could you please check my code please.
Thanks

采纳的回答

Jos
Jos 2015-2-18
编辑:Jos 2015-2-18
Hi Mahesh,
this will do what you want
nx = size(dyzw,1);
ny = size(dyzw,2);
nz = size(dyzw,3);
N = nx*ny*nz;
bigMatrix = zeros(N,4);
i = 0;
for j = 1:nx
for k = 1:ny
for l = 1:nz
i = i+1;
bigMatrix(i,1) = j;
bigMatrix(i,2) = k;
bigMatrix(i,3) = l;
bigMatrix(i,4) = dyzw(j,k,l);
end
end
end

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Lighting, Transparency, and Shading 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by