problem with overloaded plot in 2014b

1 次查看(过去 30 天)
Dear all,
I am facing a problem I have not seen before. I have overloaded the plot function for a certain class. Up until 2014a, I was able to call the overloaded method in either of the following ways:
plot(x,obj,varargin)
plot(obj,varargin)
The purpose of x in the first call is to restrict the x-axis of the plot to the values contained in x.
With 2014b, variable x does not even appear in the workspace of the overloaded plot method. That is, calling plot(x,obj) is the same as simply calling plot(obj). I have put a keyboard in the workspace of my overloaded plot function and x is nowhere to be found.
Can anybody explain to me what is going on?
Thanks,
  2 个评论
Matt J
Matt J 2014-11-28
编辑:Matt J 2014-11-28
We'll probably need a reproducible example, preferably an abbreviated version of your actual class. I can't confirm the phenomenon with tests of my own. The example class below shows all input arguments in R2014b with no surprises,
classdef myclass
methods
function plot(x,obj,y)
x,obj,y
end
end
end
Patrick Mboma
Patrick Mboma 2014-11-29
编辑:per isakson 2014-11-29
Hi Matt,
Thanks for answering. I finally realized my mistake... or perhaps not exactly. The thing is that the data I plot have some nans at the beginning and at the end.
The overloaded function sets the xlim using the information in x. But then, outside the plot function, I was setting axis to tight. In that case all the nan parts disappear, which I was not expecting.
This is what I was interpreting as 2014b ignoring the x input. The basic problem can be easily replicated say
x=1:100;
y=log(x);
y([1:10,90:100])=nan;
plot(x,y)
matlab automatically ignores the nans at the beginning and at the end of y.

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Whos 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by