MATLAB: “hold on” on plot does not work over 2 functions

hold onplot

I have two problem on my code regarding plotting points on a x-y plane.
My code is briefly summarized as follows in main.m and sketch.m;
main.m
plot(x,y,linespec); hold on;
sketch(n);
end
sketch.m
[hx,hy] = ginput(n);
for i = 1:n
plot(hx(i), hy(i), linespec); hold on;
end
What I want to achieve is that:
  1. Create a base x-y plane
  2. Get clicked x-y coordinates on the created x-y plane at the step 1.
  3. Plot all points onto the created x-y plane at the step 1.
And here is my problems;
My first problem is that:
ginput does not follow the x-y coordinate which is created in main file. I think the clicked data is on 1 by 1 x-y plane.
My second problem is that: plot in sketch.m does not work and the program itself freezes and MATLAB also crashes in the end.
If you know how to fix this problem, please let me know and help me out. Thank you so much in advance.

Best Answer

Hi Hyom,
I tried to create a minimal working example from your code but I do not get any errors. Could you describe the errors you get?
Best,
Michael
main.m
function [] = main ()
x = 1:1:10;
y = rand(10,1);
linespec = 'ro-';
plot(x,y,linespec); hold on;
sketch(2);
end
sketch.m
function [] = sketch (n)
[hx,hy] = ginput(n);
for i = 1:n
plot(hx(i), hy(i), 'bo'); hold on;
end
end