matlab - How to write a S-function, generating signal of higher than 2 dimensions? -


apparently, unable generate signal of [3x3x3] dimensions:

function test_sf_02(block) % level-2 matlab file s-function.      setup(block);  function setup(block)      % register number of ports , parameters     block.numinputports  = 0;     block.numoutputports = 1;     block.numdialogprms  = 0;      % setup functional port properties dynamically inherited     block.setprecompoutportinfotodynamic;      % register properties of output port     block.outputport(1).samplingmode   = 'sample';     %block.outputport(1).dimensionsmode = 'variable';     block.outputport(1).dimensionsmode = 'fixed';     block.outputport(1).dimensions = [3 3 3];        % register sample times     %  [-1, 0] : inherited sample time     block.sampletimes = [-1 0];      % register methods called @ run-time     block.regblockmethod('outputs', @outputs);   function outputs(block)      block.outputport(1).data = zeros(3,3,3); 

error occurs @ block.outputport(1).dimensions assignment , says

cannot set dimensions of output port 1 of 'test_01/level-2 matlab s-function' [3x3x3]. block not setup handle signals of dimensions greater 2 dimensions.

why? saw blocks, generating image frames, i.e. mxnx3 matrices.

update

this not duplicate question.

within setup method need use method

block.allowsignalswithmorethan2d = 1; 

this typically done after number of inputs, outputs , parameters defined.

note being source block, simulink prefer specify sample time, not have inherited.


Comments

Popular posts from this blog

php - Calling a template part from a post -

Firefox SVG shape not printing when it has stroke -

How to mention the localhost in android -