"Invalid handle." Error while using "Plot3".

조회 수: 2 (최근 30일)
Abhay Aradhya
Abhay Aradhya 2017년 6월 9일
답변: Walter Roberson 2017년 6월 9일
ax = axes('Parent',customUserInterface,'Position',[.1 .5 .375 .4]);
hold on
for m=1:numOfAP
plot3(ax,Data(m).traj(:,1),Data(m).traj(:,2),Data(m).traj(:,3),'g','LineWidth',2)
hold on
grid on
end
hold on
The Error points to the line with "Plot3". What am I going wrong with? Thanks in advance.
  댓글 수: 5
Abhay Aradhya
Abhay Aradhya 2017년 6월 9일
@walterRoberson
I checked the code once again but I do not have a "clear all" or "close all" anywhere in the code. I am putting down the code for your ref. Please suggest some work around. Thanks in advance.
customUserInterface = figure('Name','Solution selector window');
ax = axes('Parent',customUserInterface,'Position',[.1 .5 .375 .4]);
hold on
% to plot all the crossing points
subplot(ceil(sqrt(size(sectors_all,1))),ceil(sqrt(size(sectors_all,1))),p, 'Position',flightDataPlotPosition);
hold on;
if isempty(CP_xyz) == 0
plot3(ax,CP_xyz(:,1),CP_xyz(:,2),CP_xyz(:,3),'rh','LineWidth',2);
end
hold on
% To plot the trajectory taken by all the flights in the current hour
for m=1:numOfAP
plot3(ax,Data(m).traj(:,1),Data(m).traj(:,2),Data(m).traj(:,3),'g','LineWidth',2)
hold on
grid on
end
hold on
Abhay Aradhya
Abhay Aradhya 2017년 6월 9일
편집: Abhay Aradhya 2017년 6월 9일
Found out that the "subplot" is the culprit. And without that it works fine. Any idea of a workaround?

댓글을 달려면 로그인하십시오.

채택된 답변

Walter Roberson
Walter Roberson 2017년 6월 9일
subplot() removes any axes that it overlaps. Your subplot() has exactly the same Position as your axes() call, so the subplot axes is going to overlap the explicit axes() created, which will cause the specific axes to be deleted.

추가 답변 (1개)

KSSV
KSSV 2017년 6월 9일
You should proceed like this.
h = plot3(rand(1,2),rand(1,2),rand(1,2),'g','LineWidth',2) ;
grid on
for m=1:100
set(h,'XData',rand(1,2),'YData',rand(1,2),'ZData',rand(1,2)) ;
end
  댓글 수: 2
Abhay Aradhya
Abhay Aradhya 2017년 6월 9일
편집: Abhay Aradhya 2017년 6월 9일
customUserInterface = figure('Name','Solution selector window');
ax = axes('Parent',customUserInterface,'Position',[.1 .5 .375 .4]);
hold on
subplot(ceil(sqrt(size(sectors_all,1))),ceil(sqrt(size(sectors_all,1))),p, 'Position',[.1 .5 .375 .4]);
hold on;
h = plot3(ax,rand(1,2),rand(1,2),rand(1,2),'g','LineWidth',2) ;
grid on
for m=1:numOfAP
set(h,'XData',Data(m).traj(:,1),'YData',Data(m).traj(:,2),'ZData',Data(m).traj(:,3))
end
hold on
Tried the above approach to no avail the same error exists...!!!
It shows error at "plot3" again. Without the "ax" it seems to be working fine though, but I do need the referencing in my case as I am trying to plot 2 3D graphs on the same GUI. Please suggest any other solution. Thanks in advance
Abhay Aradhya
Abhay Aradhya 2017년 6월 9일
편집: Abhay Aradhya 2017년 6월 9일
Found out that the "subplot" is the culprit. And without that it works fine. Any idea of a workaround?

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Line Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by