Error using 'getframe' in an embedded Matlab function in a Simulink Model
1 回表示 (過去 30 日間)
古いコメントを表示
I am trying to use 'getframe' in a Matlab function within a Simulink Model. I get the error "Cannot get field colormap from struct colormap. Block Baseband Waterfall Spectrum/MATLAB Function1 (#74) While executing: none "
Now, obviously the 'colormap' field is empty. For some reason when you use 'getframe' within Simulink it is unable to deal with an empty field. Seams to work fine in Matlab. So is this a bug? Is there a way around the problem?
Please see the function code below:
function mycdata = fcn(v,Myhandle0,count)%#codegen
coder.extrinsic('get');
coder.extrinsic('subplot');
coder.extrinsic('getframe');
mymovie = struct('cdata',uint8(zeros(420,560,3)),'colormap',double([]));
figure1 = Myhandle0;
if count >0
subplot2 = subplot(1,2,2,'Parent',figure1);
surf(v,'Parent',subplot2,'LineStyle','none');
mymovie =getframe(figure1);
mycdata = mymovie.cdata;
hold off;
else
mycdata = uint8(zeros(420,560,3));
end
end
1 件のコメント
Walter Roberson
2013 年 3 月 6 日
It probably will not make any difference, but the official syntax for the struct in MATLAB would be
mymovie = struct('cdata', {uint8(zeros(420,560,3))}, 'colormap', {double([])});
and you could probably use zeros(0,0) instead of double([])
回答 (1 件)
Fred Smith
2013 年 3 月 6 日
I think this is a bug or a limitation depending on what version you are using. Prior to R2012b, empty-fields were not supported by MATLAB Function blocks.
Functionality very similar to this worked fine for me in the latest development version.
What version of MATLAB are you using?
2 件のコメント
参考
カテゴリ
Help Center および File Exchange で Startup and Shutdown についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!