How to swap values of two variables?

363 ビュー (過去 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 Center および File ExchangeLoops and Conditional Statements についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by