How to rename array layer number or iteration no.

2 visualizzazioni (ultimi 30 giorni)
I have an array
layer1 =
90 90 -45 0 0 45 45 0 -45
90 90 -45 0 0 45 45 -45 0
90 90 -45 0 0 45 0 -45 45
90 90 -45 0 45 45 0 -45 0
90 90 0 0 45 45 0 -45 -45
90 -45 0 0 45 45 0 -45 90
layer = reshape(layer1(2:end,:)',1,size(layer1,2),(size(layer1,1)-1));
output
layer(:,:,1) =
90 90 -45 0 0 45 45 -45 0
layer(:,:,2) =
90 90 -45 0 0 45 0 -45 45
layer(:,:,3) =
90 90 -45 0 45 45 0 -45 0
layer(:,:,4) =
90 90 0 0 45 45 0 -45 -45
layer(:,:,5) =
90 -45 0 0 45 45 0 -45 90
I'm calculating other values for layer1 and i want to reshape to layer(:,:,6) to layer(:,:,10)
layer1 =
90 -45 0 0 45 45 0 -45 90
90 -45 0 0 45 45 -45 0 90
90 -45 0 0 45 0 -45 45 90
90 -45 0 45 45 0 -45 0 90
90 0 0 45 45 0 -45 -45 90
-45 0 0 45 45 0 -45 90 90
>
  5 Commenti
Triveni
Triveni il 27 Gen 2016
In case of zeros.
layer = zeros(1,9,10);
can we allocate/fill values of layer(:,:,1) to layer(:,:,5)?. Is it not possible to refill the values from next loop it should be layer(:,:,6) to layer(:,:,10)??
Triveni
Triveni il 27 Gen 2016
I have edited question....please see again

Accedi per commentare.

Risposta accettata

Andrei Bobrov
Andrei Bobrov il 27 Gen 2016
Modificato: Andrei Bobrov il 28 Gen 2016
Сan it?
layer1 = circshift(layer1,[0 8]);
or
layer1 = layer1(:,[2:end,1]);
or
p = [90 90 -45 0 0 45 45 0 -45];
idx = fliplr([true, diff(fliplr(p))~=0]);
ii = find(idx);
n = numel(ii);
layer1 = zeros(n,numel(p));
layer1(1,:) = p([2:end,1]);
i1 = fliplr(ii);
for jj = 2:n
layer1(jj,:) = layer1(jj-1,:);
layer1(jj,[i1(jj)-1,end-1]) = layer1(jj,[end-1,i1(jj)-1]);
end

Più risposte (0)

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by