Round function with multiple inputs not working in MATLAB function block in Simulink
    10 views (last 30 days)
  
       Show older comments
    
Hi all,
I want to round a number to 3 decimal places. In MATLAB I can easily do it in this way:
>> number=25.0001;
>> round(25.0001,3)
 ans =
    25
If I try to do this in Simulink in a MATLAB Function block in this way:
 function D_avg1 = fcn(m)
 %#codegen
 D_avg1 = round(m,3);
It gives error:
 Error calling 'round'. This call-site passes more inputs to this function than it can accept.
Function 'BSD_System /Averaging/MATLAB Function' (#278.45.55), line 4, column 10:
"round(m,3)"
Launch diagnostic report.
Component: MATLAB Function | Category: Coder error
How to solve this?
0 Comments
Accepted Answer
  Azzi Abdelmalek
      
      
 on 7 Jul 2015
        Instead of round(u,3) use
round(u*1000)/1000
4 Comments
  Paul
      
      
 on 1 May 2020
				Only the single argument syntax is supported:
C/C++ Code Generation
 Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
- Code generation supports only the syntax Y = round(X).
- Code generation does not support char or logical data types for X.
  Paul
      
      
 on 2 May 2020
				I should have mentioned that if you want the 2-argument version declaring round as an extrinsic function should work.
More Answers (0)
See Also
Categories
				Find more on Simulink Functions in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



