How to swap values of two variables?

조회 수: 361 (최근 30일)
Daniel Contreras
Daniel Contreras 2017년 10월 23일
댓글: lala 2023년 8월 29일
For instance, if i ask the user to input the values of a and b, in this case they choose a=10 and b=5 how would I be able to switch them so that it'll be a=5 and b=10.
  댓글 수: 4
Subhashini Neelamegam
Subhashini Neelamegam 2021년 10월 18일
This code works
Jan
Jan 2021년 10월 19일
편집: Jan 2021년 10월 19일
@Subhashini Neelamegam: Yes, but this is more efficient:
function [b, a] = swap(a, b)
end

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

채택된 답변

David Goodmanson
David Goodmanson 2017년 10월 23일
Hi Daniel,
Take a look at the 'deal' command, in this case [b a] = deal(a,b)

추가 답변 (3개)

Jan
Jan 2017년 10월 23일
Cheaper than deal:
function [b, a] = swap(a, b)
% This function has no body!
  댓글 수: 13
Rik
Rik 2023년 8월 29일
You generally need to warm up function calls if you want to test timings online. This should be reasonably stable. As you can see, they differ by a lot, but in the other direction than your post shows. Using a function instead of a script might also affect the timings (as you can see, the same code runs over 10x faster inside a function).
timeit(@test_deal);timeit(@test_swap);% warm-up round
timeit(@test_deal),timeit(@test_swap)
ans = 0.0798
ans = 0.0017
function test_deal
c1 = zeros(100);
c2 = ones(100);
for i = 1:100000
[c1,c2] = deal(c2,c1);
end
end
function test_swap
c1 = zeros(100);
c2 = ones(100);
for i = 1:100000
[c1,c2] = swap(c2,c1);
end
end
function [a,b] = swap(a,b)
end
lala
lala 2023년 8월 29일
@Rik Thanks for your reply. You are right. :)

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


Daniel Afriyie
Daniel Afriyie 2019년 10월 13일
[b, a] = deal(a,b)
  댓글 수: 1
Jan
Jan 2019년 11월 4일
This was mentioned 2 years ago already.

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


AAMIR SHEIKH
AAMIR SHEIKH 2020년 8월 11일
Going Traditionally !!!
a = input("enter a :::");
b = input("enter b :::");
temp = a;
a = b;
b = temp;
[a b]

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by