MATLAB Answers

error of min() function in matlab function block in simulink (v 2018b)

8 views (last 30 days)
Andrea Valletta
Andrea Valletta on 30 Oct 2020
Commented: Ameer Hamza on 31 Oct 2020 at 9:11
Dear Matlab community,
I am trying to implement the minimum search within a matlab function block in a simulink model.
I need to find the minimum element and hence its coordinates of a matrix so I used the following code where the matrix "a" may contain 'nans'
>> [r,c]=find(a==min(a,[],'all'),1,'first')
however, I get the error " Invalid option. Option must be 'omitnan' or 'includenan' ". I substituted 'omitnan' to 'all' option but I eneded up with a "size mismatch" error.
So I am now using a for loop to search the minimum in the matrix, but this slows down my code.
I saw that this issue could arise with matlab releases that are older than 2018b, but I am using 2018b.
Do you know if there are other ways to solve this problem? Am I doing something wrong?
thank you in advance
Andrea

  0 Comments

Sign in to comment.

Accepted Answer

Ameer Hamza
Ameer Hamza on 30 Oct 2020
According to documentation, the 'all' option is not supported for code-generation in R2018b (i.e., it will not work in Simulink). Also, using find() with min() might be inefficient. Try following
[~, idx] = min(a(:));
[r, c] = ind2sub(size(a), idx)

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by