Filter löschen
Filter löschen

Embedded matlab function error..

4 Ansichten (letzte 30 Tage)
Sriharsha
Sriharsha am 8 Feb. 2012
How to resolve this type of errors?/
---------------------------------
Computed maximum size of the output of function 'colon' is not bounded. Static memory allocation requires all sizes to be bounded. The computed size is [1 x :?].
-------------------------------------

Akzeptierte Antwort

Kaustubha Govind
Kaustubha Govind am 8 Feb. 2012
It looks like you are trying to create a variable whose size is dynamic. For example:
function y = myfun(n)
y = zeros(1,n);
Since Embedded MATLAB uses static memory allocation, it cannot handle variables that change size dynamically. What you can do is declare 'y' as variable-sized while specifying an upper bound for the size.
function y = myfun(n)
coder.varsize('y', [1 1024]); %n must never exceed 1024
y = zeros(1,n);
  2 Kommentare
Sriharsha
Sriharsha am 9 Feb. 2012
Hi mam,
i wil let you know my function.
i am using this function inside an embedded matlab function block..
--------------------------------------------
function [tiq,Isymbols,Qsymbols,sumiq]= qpsk(N)
%#eml
fcarr=2e3;
%N=10;
fs=16*1e3;
Fn=fs/2;
Ts=1/fs;
T=1/N;
randn('state',0);
td=[0:Ts:(N*T)-Ts]';
data=sign(randn(N,1))';
data1=ones(T/Ts,1)*data;
data2=data1(:);
tiq = [0:Ts*2:(N*T)-Ts]';symbols(transpose)
bs1=data(1:2:length(data));
symbols=ones(T/Ts,1)*bs1;
Isymbols=symbols(:);
bs2=data(2:2:length(data));
symbols1=ones(T/Ts,1)*bs2;
Qsymbols=symbols1(:);
twopi_fc_t=(1:fs/2)*2*pi*fcarr/fs;
a=1;
phi=0;
cs_t = (a * cos(twopi_fc_t + phi));
sn_t = (a * sin(twopi_fc_t + phi));
cs_t=cs_t';
sn_t=sn_t';
si=cs_t.*Isymbols;
sq=sn_t.*Qsymbols;
sumiq=si+sq;
sumiq=.7*sumiq;
-------------------------------------------------
And then , i am facing such errors....
------------------------------
Computed maximum size of the output of function 'colon' is not bounded. Static memory allocation requires all sizes to be bounded. The computed size is [1 x :?]
--------------------------------------
Kaustubha Govind
Kaustubha Govind am 9 Feb. 2012
Does it point to a specific line? I can see several lines where you are creating variables of dynamic size:
data=sign(randn(N,1))';
data1=ones(T/Ts,1)*data;
tiq = [0:Ts*2:(N*T)-Ts]';
bs1=data(1:2:length(data));
symbols=ones(T/Ts,1)*bs1;
bs2=data(2:2:length(data));
symbols1=ones(T/Ts,1)*bs2;

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by