unexpected matlab operator error when plotting from a simulink matlab function
조회 수: 1 (최근 30일)
이전 댓글 표시
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
답변 (1개)
Paul
2023년 1월 19일
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
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!