坚持不使用ezplot3

时间:2011-10-21 09:52:46

标签: matlab plot

我不确定为什么保持不在这个例子中。

syms t1 t2 t3
line1 = [0,0,0] + t1*[0,0,1];
line2 = [1,0,0] + t2*[0,0,1];
line3 = [0,1,0] + t3*[0,0,1];

hold on 
ezplot3(line1(1),line1(2),line1(3))
ezplot3(line2(1),line2(2),line2(3))
ezplot3(line3(1),line3(2),line3(3))
hold off

任何线索?

2 个答案:

答案 0 :(得分:3)

我找到了这个here的线索:

  

我们应该指出用ezmesh和ezplot3这样做,有必要首先绘制线然后绘制平面。 原因是ezplot3的代码是以撤消任何先前发布的命令的效果的方式编写的。当然可以通过使用plot3而不是ezplot3来解决这个问题......

另见here。似乎plot3就是你的答案。

答案 1 :(得分:1)

查看函数的源代码以了解原因:

>> edit( fullfile(matlabroot,'toolbox','symbolic','symbolic','@sym','ezplot3.m') )

第一行是:clf,删除当前图形中的所有图形对象,包括所包含的轴(HOLD函数基本上设置轴的'NextPlot'属性)。试着评论那条线......


注意:@ClementJ给出的代码的原因。在评论工作中是因为它使用了不同的EZPLOT3功能。它调用常规函数而不是像例子中那样使用符号对象的版本:

>> which -all ezplot3
C:\Program Files\MATLAB\R2011b\toolbox\matlab\specgraph\ezplot3.m
C:\Program Files\MATLAB\R2011b\toolbox\symbolic\symbolic\@sym\ezplot3.m  % sym method

实际上,符号函数最终会调用常规的EZPLOT3。