# slreportgen.utils.sortSystems

## Syntax

``sortedList = slreportgen.utils.sortSystems(systemList)``
``sortedList = slreportgen.utils.sortSystems(systemList,sortMethod)``

## Description

````sortedList = slreportgen.utils.sortSystems(systemList)` sorts the elements in `systemList` alphabetically by name. You must load the models containing the systems before using the `sortSystems` function. The function ignores and excludes invalid elements.```

example

````sortedList = slreportgen.utils.sortSystems(systemList,sortMethod)` uses `sortMethod` to sort the elements in `systemList`.```

## Examples

collapse all

This example shows how to use the `slreportgen.utils.sortSystems` function to sort Simulink systems by the number of blocks.

Import these packages so you do not have to use long, fully qualified function and class names.

```import slreportgen.finder.* import slreportgen.utils.*```

Open the model and note how many blocks each subsystem contains.

```model_name = "sortSystemsExampleModel"; open_system(model_name);```

Use an `slreportgen.finder.DiagramFinder` object to find and create a list of the systems in the model. Display the paths of the systems and note that the model itself is considered a system.

```sysList = find(DiagramFinder(model_name)); disp([sysList.Path]');```
``` "sortSystemsExampleModel" "sortSystemsExampleModel/System1" "sortSystemsExampleModel/System2" "sortSystemsExampleModel/System3" "sortSystemsExampleModel/System4" ```

Use the `slreportgen.utils.sortSystems` function to sort the systems by the number of blocks. Display the paths of the sorted list and note that the `numBlocks` sort option considers subsystems as blocks.

```sortedList = sortSystems(sysList,"numBlocks"); disp([sortedList.Path]');```
``` "sortSystemsExampleModel/System4" "sortSystemsExampleModel/System1" "sortSystemsExampleModel/System3" "sortSystemsExampleModel" "sortSystemsExampleModel/System2" ```

## Input Arguments

collapse all

List of Simulink® and Stateflow® systems to sort, specified as one of these values:

ValueExample
String array of model names
```systemList = ["slrgex_f14",... "slrgex_sf_car",... "slrgex_fuelsys",... "slrgex_radar_eml"]; ```
Array of system handles
```load_system("slrgex_f14"); systemList = find_system("slrgex_f14",findall=true,... type="block",blocktype="SubSystem"); ```
`slreportgen.finder.DiagramResult` array returned by `slreportgen.finder.DiagramFinder` objects
```import slreportgen.finder.* load_system("slrgex_f14"); load_system("slrgex_sf_car"); finder1 = DiagramFinder("slrgex_sf_car"); finder2 = DiagramFinder("slrgex_fuelsys"); systemList = [find(finder1) find(finder2)]; ```

Method for sorting, specified as one of these values:

ValueDescription
`"alphabetical"`

Sort objects alphabetically by name.

`"numBlocks"`

Sort systems by the number of blocks in the system, from large to small.

`"depth"`

Sort objects by depth in the model hierarchy, where a subsystem is preceded by the subsystem that contains it.

## Output Arguments

collapse all

Sorted list, returned as a string array, handle array, or `slreportgen.finder.DiagramResult` object array. The returned array is the same type as `systemList`.

## Version History

Introduced in R2022b