How do I find the two smallest values in varargin?

1 回表示 (過去 30 日間)
Harold Meggs
Harold Meggs 2015 年 4 月 24 日
回答済み: David Sanchez 2015 年 4 月 24 日
For example, the varargin input is 5,3,6
I want to multiply the the two lowest values, 5*3.
I have tried this:
y=sort (varargin,1, 'ascend');
z=y(:, 1:2);
area= z{1}*z{2};
This is the error I receive:
Error using sort
DIM and MODE arguments not supported for cell arrays.

採用された回答

David Sanchez
David Sanchez 2015 年 4 月 24 日
function out = two_lowest_values(varargin)
a = sort(cell2mat(varargin));
out = a(1)*a(2);

その他の回答 (1 件)

Harold Meggs
Harold Meggs 2015 年 4 月 24 日
I have also tried this:
Xs = sort(varargin);
min2nd = Xs{1,2};
minVal=min(varargin);
area=min2nd*minVal;
Error message:
Error using sort
Input argument must be a cell array of strings.

カテゴリ

Help Center および File ExchangeShifting and Sorting Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by