MATLAB Function block limitations
    5 views (last 30 days)
  
       Show older comments
    
I'm trying to implement MATLAB code into a MATLAB function block in Simulink which would need to do the following: parse data/text from a .INI file, extract data points, interpolate the input x of the MATLAB function block based on such data points and output y. 
This block should be able to be compiled by the PLC Coder.
I wrote a MATLAB script that could do what I wanted, but as I tried to implement it in a MATLAB function block, I ran into all sorts of problems, from variable-size data, to functions not supported for code generation (already read a lot of documentation regarding these). 
I'm wondering if this is the right approach to implement such functionality to a Simulink Model. I was expecting that whichever .m script I wrote to perform such functionality would work seamlessly in the MATLAB Function block. It doesn't seem to be the case. Is this the correct approach or will I perhaps have an easier time implementing this natively in Simulink with block logic, instead of the Function block, for example?
1 Comment
  Saeed Ahmadzadeh Mahboobi
 on 19 Nov 2020
				I have also faced this Problem.
I wanted to even change the data type of the MATLAB-function from double to boolean (logical).   So i wrote in the MATLAB-function " x = logical(k) ". but I get the error that changing the data types are not possible. but when i use the block " Convert " from the simulink library, it works !!
Apparently, MATLAB-Function has restrictions that won't let you work with them just like an m-file.
Answers (1)
  Jyotsna Talluri
    
 on 7 Nov 2019
        We can implement MATLAB code in simulink by S-Functions as the MATLAB Function block is not supported in all cases
Refer to the below link 
See Also
Categories
				Find more on User-Defined 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!

