这种图像能用matlab表示吗?

img

可以的,用solidArrow函数就行:

function solidArrow(x, y, arrowSize, dx, dy)
pmid = [x, y];
d = [dx,  dy];
theta = 162;
T1 = [cosd(theta ), sind(theta ); -sind(theta ), cosd(theta )];
T2 = [cosd(theta ), -sind(theta ); sind(theta ), cosd(theta )];
ep = d/norm(d);
d1 = ep*(T1');
d2 = ep*(T2');
L = arrowSize;
p3 = pmid + d1*L;
p4 = pmid + d2*L;
patch('vertices',[pmid;p3;p4],'faces',[1,2,3],'facecolor','k','edgecolor','k')
end

调用:

fplot(@sin, [0, pi]);
hold on
for i = pi/5:pi/5:pi/5*4
    solidArrow(i, sin(i), 0.2, 1, cos(i))
end
axis equal

效果

img