How to swap values of two variables?

374 vues (au cours des 30 derniers jours)
Daniel Contreras
Daniel Contreras le 23 Oct 2017
Commenté : lala le 29 Août 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 commentaires
Subhashini Neelamegam
Subhashini Neelamegam le 18 Oct 2021
This code works
Jan
Jan le 19 Oct 2021
Modifié(e) : Jan le 19 Oct 2021
@Subhashini Neelamegam: Yes, but this is more efficient:
function [b, a] = swap(a, b)
end

Connectez-vous pour commenter.

Réponse acceptée

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

Plus de réponses (3)

Jan
Jan le 23 Oct 2017
Cheaper than deal:
function [b, a] = swap(a, b)
% This function has no body!
  13 commentaires
Rik
Rik le 29 Août 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)
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 le 29 Août 2023
@Rik Thanks for your reply. You are right. :)

Connectez-vous pour commenter.


Daniel Afriyie
Daniel Afriyie le 13 Oct 2019
[b, a] = deal(a,b)
  1 commentaire
Jan
Jan le 4 Nov 2019
This was mentioned 2 years ago already.

Connectez-vous pour commenter.


AAMIR SHEIKH
AAMIR SHEIKH le 11 Août 2020
Going Traditionally !!!
a = input("enter a :::");
b = input("enter b :::");
temp = a;
a = b;
b = temp;
[a b]

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by