How to interchange/swap variable in matrix and store it to different variable.

2 vues (au cours des 30 derniers jours)
p = [90 90 -45 0 0 45 45 0 -45];
p1 = p; %store temporary copy of p
idx = [true diff(p)~=0];
q = p(idx);
idx = fliplr([true, diff(fliplr(p))~=0]);
position_p = find(idx); pos = position_p;
I want to interchange positions of p according to position_p from right side. In every iteration only p(9) should be interchange.
p(9) interchange with p(8) //A/c to position_p right to left
Layer(:,:,1) = [90 90 -45 0 0 45 45 -45 0];
p(9) interchange with p(7)
Layer(:,:,2) = [90 90 -45 0 0 45 0 -45 45];
and so on...
position_p = [2 3 5 7 8 9] menas 1st interchange p(9) with p(8) then store layer and then interchange p(7) and so on....

Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 26 Jan 2016
Modifié(e) : Andrei Bobrov le 26 Jan 2016
ii = find(idx);
n = numel(ii);
out = zeros(n,numel(p));
out(1,:) = p;
i1 = fliplr(ii);
for jj = 2:n
out(jj,:) = out(jj-1,:);
out(jj,[i1(jj),end]) = out(jj,[end,i1(jj)]);
end
  2 commentaires
Triveni
Triveni le 26 Jan 2016
Lot of thanks Sir...
Triveni
Triveni le 26 Jan 2016
Can you reshape out to Layer(:,:,k) except 1st layer

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur External Language Interfaces dans Help Center et File Exchange

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by