Swap the first and last columns

조회 수: 25 (최근 30일)
Zunaed Kibria
Zunaed Kibria 2018년 12월 16일
답변: ARVIND KUMAR SINGH 2020년 5월 25일
function B = swap_ends(A)
B = A(:,[end , 2:end-1 , 1]);
end
tried this , but showing error , can any one help ?

답변 (4개)

Alessandro Galo
Alessandro Galo 2019년 3월 26일
This works ;)
if size(A,2) ~= 1 & size(A,2) ~= 0
B = A(:,[end , 2:end-1 , 1])
else
B = A;
end

madhan ravi
madhan ravi 2018년 12월 16일
편집: madhan ravi 2018년 12월 16일
A=rand(4) % example matrix
B = swap_ends(A) % function call
function B = swap_ends(A) % function definition
A(:,[1 end])=A(:,[end 1]);
B=A;
end
Gives:
A =
0.5200 0.8475 0.4965 0.0832
0.7875 0.0289 0.0663 0.1867
0.2765 0.5650 0.1179 0.9095
0.0962 0.7098 0.3063 0.6303
B =
0.0832 0.8475 0.4965 0.5200
0.1867 0.0289 0.0663 0.7875
0.9095 0.5650 0.1179 0.2765
0.6303 0.7098 0.3063 0.0962
A=rand(1,5) % example row vector/column vector
B = swap_ends(A) % function call
function B = swap_ends(A) % function definition
A([1 end])=A([end 1]);
B=A;
end
Gives:
A =
0.6604 0.9767 0.4717 0.8576 0.9269
B =
0.9269 0.9767 0.4717 0.8576 0.6604
  댓글 수: 1
Walter Roberson
Walter Roberson 2019년 3월 26일
편집: Walter Roberson 2019년 3월 26일
Alessandro Galo's solution does raise the good point that swapping using end subscript will fail if the array is empty on that dimension, so the swap should be protected with isempty()

댓글을 달려면 로그인하십시오.


Sunil Kumar Giri
Sunil Kumar Giri 2020년 1월 13일
function B = swap_ends(A)
B = A;
A(:,1) = A(:,end);
A(:,end) = B(:,1);
B = A
end

ARVIND KUMAR SINGH
ARVIND KUMAR SINGH 2020년 5월 25일
function B = swap_ends(A)
[~,col] = size(A);
if col<2
B = A;
else
a = A(:,1);
b = A(:,col);
c = A(:,2:col-1);
B =[b c a];
end
end

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by