Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: simple embedded buffer with inhereted width
Replies: 0  

Advanced Search

Back to Topic List Back to Topic List  
J

Posts: 9
Registered: 8/29/09
simple embedded buffer with inhereted width
Posted: Dec 12, 2012 4:48 PM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

Hi, all-

I want to implement a simple FIFO buffer in the simulink embedded matlab block with width determined by the input from simulink. The outputs should be both the entire contents as a matrix, and the last element. The code below works with option B (see comments), but not with option A. Option A is the desired option, but in this case, simulink reports the following error:

Data 'pres' (#162) is inferred as a variable size matrix, while its
specified type is something else.

Can anyone explain how to get this to work? Apparently, setting the problem output to be variable width will fix Option A, but the width does not change during simulation and using variable width causes endless problems down stream.

Thanks in advance,
-Jason

CODE:

function [pvects,pres] = FFstorage(u,Nff)
%#codegen

persistent xstore Nu
if isempty(xstore)
Nu=length(u);
xstore = repmat(u,1,Nff);
end;
%try an initialization
pres=zeros(Nu,1);

xstore(1:Nu,1:Nff-1)=xstore(1:Nu,2:Nff);
xstore(1:Nu,Nff)=u;
pvects=xstore;

%Option A: this is the desired output
pres=xstore(1:Nu,1);

%Option B: this works, but it is not the desired output
% % pres=u;



Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.