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

조회 수: 1 (최근 30일)
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....

채택된 답변

Andrei Bobrov
Andrei Bobrov 2016년 1월 26일
편집: Andrei Bobrov 2016년 1월 26일
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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 External Language Interfaces에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

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

Start Hunting!

Translated by