Я хотел бы создать треугольный график поверхности с помощью функции 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
, но у меня это внутри цикла, поэтому делать это не рекомендуется. Есть ли другое решение?