How to swap values of two variables?
397 views (last 30 days)
Show older comments
Daniel Contreras
on 23 Oct 2017
Commented: lala
on 29 Aug 2023
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 Comments
Jan
on 19 Oct 2021
Edited: Jan
on 19 Oct 2021
@Subhashini Neelamegam: Yes, but this is more efficient:
function [b, a] = swap(a, b)
end
Accepted Answer
David Goodmanson
on 23 Oct 2017
Hi Daniel,
Take a look at the 'deal' command, in this case [b a] = deal(a,b)
0 Comments
More Answers (3)
Jan
on 23 Oct 2017
Cheaper than deal:
function [b, a] = swap(a, b)
% This function has no body!
13 Comments
Rik
on 29 Aug 2023
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)
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
AAMIR SHEIKH
on 11 Aug 2020
Going Traditionally !!!
a = input("enter a :::");
b = input("enter b :::");
temp = a;
a = b;
b = temp;
[a b]
0 Comments
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!