How to create three columns for matrix after indexing

1 vue (au cours des 30 derniers jours)
Mahesh
Mahesh le 18 Fév 2015
Modifié(e) : Jos le 18 Fév 2015
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

Réponse acceptée

Jos
Jos le 18 Fév 2015
Modifié(e) : Jos le 18 Fév 2015
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

Plus de réponses (0)

Catégories

En savoir plus sur Get Started with MATLAB dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by