Трисурф не может нанести на указанную ось - PullRequest
0 голосов
/ 04 мая 2018

Я хотел бы создать треугольный график поверхности с помощью функции trisurf, нацеленной на указанную ось. Однако документация MATLAB не указывает какой-либо синтаксис для этого. Когда я открываю функцию, я получаю следующие первые строки:

function hh = trisurf(tri,varargin)
%TRISURF Triangular surface plot
%   TRISURF(TRI,X,Y,Z,C) displays the triangles defined in the M-by-3
%   face matrix TRI as a surface.  A row of TRI contains indexes into
%   the X,Y, and Z vertex vectors to define a single triangular face.
%   The color is defined by the vector C.
%
%   TRISURF(TRI,X,Y,Z) uses C = Z, so color is proportional to surface
%   height.
%
%   TRISURF(TR) displays the triangles in the triangulation TR. It uses
%   C = TR.X(:,3) to color the surface proportional to height.
%
%   H = TRISURF(...) returns a patch handle.
%
%   TRISURF(...,'param','value','param','value'...) allows additional
%   patch param/value pairs to be used when creating the patch object. 
%
%   Example:
%
%   [x,y] = meshgrid(1:15,1:15);
%   tri = delaunay(x,y);
%   z = peaks(15);
%   trisurf(tri,x,y,z)
%
%   % Alternatively
%   tr = triangulation(tri, x(:), y(:), z(:));
%   trisurf(tr)
%
%   See also PATCH, TRIMESH, DELAUNAY, triangulation, delaunayTriangulation.
%   Copyright 1984-2017 The MathWorks, Inc.
narginchk(1,inf);
ax = axescheck(varargin{:});
ax = newplot(ax);
start = 1;

Вход функции не определяется просто как varargin, как это делается, например, в функции surf, поэтому невозможно указать дескриптор оси в качестве первой входной переменной. Если дескриптор оси указан в качестве второй входной переменной, функция axescheck распознает дескриптор, но позже я получаю сообщение об ошибке, поскольку ожидаемой второй входной переменной является вектор. Если дескриптор оси указан в качестве третьей входной переменной, функция axescheck вообще не распознает дескриптор.

Я знаю, что могу сначала активировать ось, а затем вызвать trisurf, но у меня это внутри цикла, поэтому делать это не рекомендуется. Есть ли другое решение?

1 Ответ

0 голосов
/ 04 мая 2018

Если у вас есть дескриптор осей той, которая вас интересует, вы можете сделать текущую ось равной axes(youraxeshandle), а просто использовать trisurf без какого-либо конкретного ввода. Он должен быть добавлен к текущей оси, которая является той, которую вы выбрали.

...