Держись не работает с ezplot3 - PullRequest
       25

Держись не работает с ezplot3

2 голосов
/ 21 октября 2011

Я не уверен, почему удержание не работает в этом примере.

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 ]

3 голосов
/ 21 октября 2011

Я нашел ключ к этому здесь :

Мы должны указать, что, делая ezmesh и ezplot3 таким образом, необходимо сначала построить линию, а затем плоскость. Причина в том, что код для ezplot3 написан таким образом, чтобы отменить эффект любого ранее выданного удержания команды . Конечно, можно обойти это, используя plot3 вместо ezplot3 ...

См. Также здесь . Похоже, plot3 ваш ответ.

1 голос
/ 22 октября 2011

Посмотрите на исходный код функции, чтобы понять, почему:

>> 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 ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...