Displaying least assigned value

2 ビュー (過去 30 日間)
Taimur Saleem
Taimur Saleem 2013 年 10 月 16 日
コメント済み: Taimur Saleem 2013 年 10 月 17 日
I need to know of a function that can choose the least value in the difference command and display its variable name.
My code runs something like:
diff=mod((var1-var2),3)
if diff==2
disp(%the name of the variable which has the lower value)
end

採用された回答

Jan
Jan 2013 年 10 月 17 日
It is a bad programming practice to let the names of the variables carry information, which is used for the processing. Mixing the program and the processing values violates the idea of an abstract algorithm.
Therefore I recommend:
V(1).value = 6;
V(1).name = 'variable1';
V(2).value = 1;
V(2).name = 'variable2';
Value = [V.value];
if mod(Value(1) - Value(2), 3) == 2
[dummy, index] = min(Value);
fprintf('%s is the smaller variable', V(index).name);
end
  1 件のコメント
Taimur Saleem
Taimur Saleem 2013 年 10 月 17 日
Well I guess you answered the question and yes I am aware that it is a bad programming practice but in my case it makes the code shorter and I wouldn't have to write 15 if commands for every possible permutation of the outcome.

サインインしてコメントする。

その他の回答 (1 件)

sixwwwwww
sixwwwwww 2013 年 10 月 16 日
Dear Taimur Saleem,
Here is the code which do it:
var1 = 6;
var2 = 1;
difference = mod((var1 - var2),3);
if difference == 2
if var1 < var2
disp('var1 is smaller variable')
else
disp('var2 is smaller variable')
end
end
I hope it helps
  1 件のコメント
Taimur Saleem
Taimur Saleem 2013 年 10 月 17 日
Well it did clarify something but I wanted a code which would display the variable name which I assigned to the value since I have 2 variables which fit the criteria for diff==2. I want to display the name of whichever of them has the lower value.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeFunction Creation についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by