这是我的matlab代码的一部分:
此处,dsig
也是一个包含90个单元格的单元格数组。
ggg=d;
decod=cell(ggg,1); %decod is a cell array
for m=1:ggg
k=1;
mm=numel(dsig{m}); %mm stores number of elements in dsig{m}
for h=1:mm %run loop for each element in dsig{m}
l=0; %l is equated to 0 every time h is incremented
if(dsig{m}(h)>0 && dsig{m}(h)<1) %if value lies between 0 and 1
str=num2str(dsig{m}(h));
str2=strrep(str,'0.',''); %remove '0.' and extract the fraction
num=str2num(str2);
l=num;
rs=(k+l)-1;
decod{m}(k:rs)=0; %decod{m} is filled with 'l' zeros
k=k+l;
else
decod{m}(k)=dsig{m}(h); %values outside 0-1 range are put into the array
k=k+1;
end;
end;
disp(size(decod{m}));
end;
这里,每当出现0到1之间的分数时,必须用等于分数值的零数代替。否则,dsig
中的值必须放入decod{m}
。decod{m}
的大小必须 76800,每m
。但我得到的错误值。我一直试图找到错误两天。这段代码有什么问题吗?