unexpected matlab operator error when plotting from a simulink matlab function
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Hi to everyone,
I have a matlab function called from simulink and I'm trying to plot all the elements of a vector, but unexpected matlab operator error appears.
My aim is to build a vector adding [u,u] at each step (like vector=[vector;x]) and then plot it at the end of each step.
I don't know why it doesn't accept the ":" in the plot.
The code is:
function fcn(u)
coder.extrinsic('evalin', 'assignin', 'plot')
if u==0
xx=[u,u];
assignin('base','xx',xx);
sz=size(xx);
assignin('base','sz',sz);
else
sz=zeros(1,2);
szz=evalin('base','sz');
xx=zeros(szz(1),szz(2));
xxx=evalin('base','xx');
xx=[xxx;[u,u]];
assignin('base','xx',xx);
end
figure(1)
plot(xx(:,1),xx(:,2),'ko');
end
Does anyone know how to fix it?
Thanks!
0 comentarios
Respuestas (1)
Paul
el 19 de En. de 2023
Hi Edoardo,
Are you really trying to plot u vs. u? Wouldn't that just be a straight line?
If wanting to do this in a Matlab Function, this code worked for me. It seems simpler and doesn't have to work with the base workspace.
function fcn(t,u)
% Incrementally add points to a line plot of t vs u
persistent init hline
if isempty(init)
init = 1;
figure;
hline = line(gca,t,u);
else
set(hline,'XData',[get(hline,'XData') t]);
set(hline,'YData',[get(hline,'YData') u]);
end
end
1 comentario
Ver también
Categorías
Más información sobre Graphics Objects en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!