matlab结构数组里的句柄调用
clc;clearall;closeall;data=struct('h',{},'XData',{});fori=1:5t=0:2*pi/30:2*pi;x=i*sin...
clc;
clear all;
close all;
data=struct('h',{},'XData',{});
for i=1:5
t=0:2*pi/30:2*pi;
x=i*sin(t);
y=cos(t);
data(i).h=plot(x,y);
data(i).XData=get(data(i).h,'XData');
end
axis equal;
axis([-5,5,-5,5]);
for t=1:10
con=get(data(1).h);
end
报错:
Error using handle.handle/get
Invalid or deleted object.
Error in testhand (line 16)
con=get(data(1).h);
为什么第二个循环中data(1).h不能用? 展开
clear all;
close all;
data=struct('h',{},'XData',{});
for i=1:5
t=0:2*pi/30:2*pi;
x=i*sin(t);
y=cos(t);
data(i).h=plot(x,y);
data(i).XData=get(data(i).h,'XData');
end
axis equal;
axis([-5,5,-5,5]);
for t=1:10
con=get(data(1).h);
end
报错:
Error using handle.handle/get
Invalid or deleted object.
Error in testhand (line 16)
con=get(data(1).h);
为什么第二个循环中data(1).h不能用? 展开
展开全部
data(i).h=plot(x,y);
原因是分配句柄的时候没有figure。连续的使用plot会导致后一次的画图覆盖前一次的结果,因此for循环结束后只有最后一个h是有效的。
应该:
data(i).h=fugure; plot(x,y);
原因是分配句柄的时候没有figure。连续的使用plot会导致后一次的画图覆盖前一次的结果,因此for循环结束后只有最后一个h是有效的。
应该:
data(i).h=fugure; plot(x,y);
追问
能不能在同一个figure里获取不同图形的句柄呢?
追答
至少对于plot绘图,这个做法还没听说过。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询