Convert a date into seconds from a string from a block "constant"
1 次查看(过去 30 天)
显示 更早的评论
I am trying to convert a date in the form 'DD.MM' - set in a constant block - into seconds in Simulink (so that the user can change it quickly). I found the following guidelines to solve the issue by it still does not get through. 1. In the block I entered uint8(DD/MM) 2. Here is the code in the function: function seconds = fcn(date) coder.extrinsic('sscanf'); coder.extrinsic('datenum'); seconds=0; sscanf(date,'%d.%d'); seconds= datenum(date,24); end
I got the following error: "First argument must be a string."
Any hint?.
0 个评论
采纳的回答
Nick Choi
2017-10-2
The error that is being generated is due to the following line of code:
sscanf(date,'%d.%d');
The 'date' variable comes out of the constant block as a 'double' variable so it needs to be type casted to a 'string' in order to be used by 'sscanf'.
In Simulink, the constant block cannot output 'string' variables as described in the following documentation page: https://www.mathworks.com/help/simulink/slref/constant.html#bslolcd-1
One thing to note is that 'DD/MM' in a constant block will return the result of the division.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 String 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!