How can I use simulink to merge four elements in a matrix to become just one symbol?

1 view (last 30 days)
I have tried using the embedded matlab function, but ended up gettin the error "Subscripting into an mxArray is not supported"
For example, assuming I'm receiving a 12x1 matrix element from a simulink block [1;2;3;4;5;6;7;8], I want simulink to group the first 4 elements and merge or symbolise it as 1234(i.e a single integer), and carry on like that for the next 4 elements. I.e, 5678 for the next set.
Here is what I vae put inside the embedded function: %---------------------------------------------------------- function y = fcn(u) formatSpec = '%d%d%d%d' A=0;A=length(u); y = (zeros(length(u),4,'double'));%y=yy; coder.extrinsic('sprintf','str2double'); u=str2double(u);
for n=1:4:A y=sprintf(formatSpec,u(n), u(n+1), u(n+2), u(n+3)); %y=[y yy]; end %------------------------------------------------------------
Anyone with the idea should please bail me out. Regards, Ken

Answers (0)

Categories

Find more on Simulink Functions in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!