array of plots in simulink

Hello,
I wrote the following embedded matlab function to plot an array of scopes:
function fcn(t,u)
% This block supports an embeddable subset of the MATLAB language.
% See the help menu for details.
figure(1)
subplot(331);
h=findobj(gca,'Type','line');
if isempty(h);
plot(t,u)
else
set(h,'XData',[get(h,'XData') t],'YData',[get(h,'YData') u]);
drawnow
end
I get the following error:
Embedded MATLAB Interface Error: Size mismatch for MATLAB expression 'get'. Expected = 1x1 Actual = 1x2
Block Embedded MATLAB Function (#44)
While executing: none.
Does anyone know what goes wrong and how i can solve it?
thanks,
edit: seems that I'm not allowed to use the get command. is there another way to get the X and Y data?
edit2: I solved the problem using the XY graph from the submenu sinks. --> drop in the simulink model --> look under mask --> open the sfun dialog box --> edit the sfun --> search in the sfun for the word axes, and replace that word by subplot(331). done

3 Comments

Thanks for writing your solution, someone else might have a similar problem, +1 vote
I am curious about the use case. It sounds odd to me to use the above code to generate the plot in Simulink. Why can't you use the Scope block?
@Fangjun Jiang. Sorry for the late reply.
The use case is that 9 figures in a column are not readable, while in a 3x3 matrix, they are.

Sign in to comment.

Answers (0)

Asked:

on 5 Dec 2011

Community Treasure Hunt

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

Start Hunting!