Swap the first and last columns
조회 수: 25 (최근 30일)
이전 댓글 표시
function B = swap_ends(A)
B = A(:,[end , 2:end-1 , 1]);
end
tried this , but showing error , can any one help ?
댓글 수: 0
답변 (4개)
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
댓글 수: 0
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
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
2020년 1월 13일
function B = swap_ends(A)
B = A;
A(:,1) = A(:,end);
A(:,end) = B(:,1);
B = A
end
댓글 수: 0
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
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!