Choose the lowest value and jump into the correct if

1 回表示 (過去 30 日間)
Martin
Martin 2021 年 6 月 11 日
回答済み: Chunru 2021 年 6 月 11 日
I got variables like:
A = 1;
B = 2;
C = 3;
those values are random and can change over time. I want to jump into the correct area in the if-statements (or case switch) for the lowest value of A,B,C. Something like
if lowest(A,{A,B,C})
do_something_A = true;
elseif lowest(B,{A,B,C})
do_something_B = true;
elseif lowest(C,{A,B,C})
do_something_C = true;
end
This is a "self-invented" function, but hope you get my point

採用された回答

Chunru
Chunru 2021 年 6 月 11 日
A=1; B=2; C=3;
z = [A, B, C]; % put variables in a vector
[~, idx] = min(z); % idx tells which variable is the minimum
% Then you can use idx to control what you want to do.
% As an example, you can use switch.
switch idx
case 1 % A is minimum
fprintf('A is the smallest')
case 2
fprintf('B is the smallest')
case 3
fprintf('C is the smallest')
end
A is the smallest

その他の回答 (1 件)

Jonas
Jonas 2021 年 6 月 11 日
use something like
[~,idx]=min([A B C]);
if idx==1 % A smallest
elseif idx==2 % B smallest
else % C snallest
end

カテゴリ

Help Center および File ExchangeIntroduction to Installation and Licensing についてさらに検索

タグ

製品


リリース

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by