MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

Asked by Simon Fletcher
on 19 Jul 2013

In my Simulink model; at every point of triggered sampling, I have 4 voltages which are measured at the same time and must be sorted into ascending order (lowest measured voltage value up to highest measured voltage value). Afterwards I want to select the highest measured value out of the 4, or the lowest measured value out of the 4.

I'm certain it is the 1-D lookup table and sort blocks which are required to be used, but there must be others as well, but I am not sure which ones? What command(s) is required to select the highest or lowest values?

EG:

Measured Values: [ 2 4 3 1]

Then to place into ascending order:

[ 1 2 3 4]

Then a command to select highest or lowest:

highest = 4

lowest = 1

I hope it is clear, it's quite straight forward I presume and I hope, I just haven't got the experience using Simulink, and the documentation doesn't really help.

Many thanks!

Answer by dpb
on 22 Jul 2013

OK, I "know nuthink" as per Sgt Schultz specific on Simulink but afaik you can use Matlab functions as blocks. To my surprise I didn't find a SORT block in the online doc's so you could use the Matlab sort() function. It returns the input vector sorted so the given outputs will be in a specific location. If you need the original position(s), it also has a second optional output that is the index vector of locations in the original.

## 2 Comments

## dpb (view profile)

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/82594#comment_160786

Do you really have to have them sorted or simply select the min/max?

## Simon Fletcher (view profile)

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/82594#comment_160914

Yes they need to be sorted, this is because this data is to be used in another if statement; which determines if it is possible to use the lowest/highest data, if not then the 2nd highest/lowest data is to be used, then if not the 2nd, the 3rd is used and so on. Thanks for the reply.