我不确定为什么保持不在这个例子中。
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
任何线索?
答案 0 :(得分:3)
我找到了这个here的线索:
我们应该指出用ezmesh和ezplot3这样做,有必要首先绘制线然后绘制平面。 原因是ezplot3的代码是以撤消任何先前发布的命令的效果的方式编写的。当然可以通过使用plot3而不是ezplot3来解决这个问题......
答案 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。