如何在MATLAB绘制的曲线上添加方向箭头,Arrowhead等工具报错如何解决
实现方案(MATLAB原生函数,无第三方依赖)
你之前报错大概率是因为调用的Arrowhead、arrowPlot属于第三方工具包,没有正确安装或路径配置,用MATLAB自带的quiver函数即可实现轨迹方向箭头效果,可直接运行的完整代码如下:
a1 = 1.05; b = 0.29; c = 0.3; d= 0.31; L1= 0.002; L2= 0.008; L3=0.0075; L4 =0.006; M1 = 0.0023; N1 = 0.0035; P1 = 0.003; eta = [60 30 30 30]; F = @(t,y) [ a1*y(1) - L1*y(1)*y(1) - L2*y(1)*y(2) - L3*y(1)*y(3) - L4*y(1)*y(4); -b*y(2) + M1*y(2)*y(1); -c*y(3) + N1*y(3)*y(1); -d*y(4) + P1*y(4)*y(1)]; [t,y] = ode45(F,(0: (300/1000000): 300), eta); % 生成轨迹坐标 x = y(:,1); y_total = y(:,2)+y(:,3)+y(:,4); % 绘制基础轨迹线 plot(x,y_total, 'LineWidth',2,'Color','#0072BD') hold on % 间隔采样添加箭头,调整step数值可控制箭头密度 step = 5000; idx = 1:step:length(x); for i = 1:length(idx)-1 dx = x(idx(i+1)) - x(idx(i)); dy = y_total(idx(i+1)) - y_total(idx(i)); % 绘制箭头,调整0.02/MaxHeadSize参数可修改箭头大小 quiver(x(idx(i)),y_total(idx(i)),dx,dy,0.02,... 'Color','#0072BD','LineWidth',1.5,'MaxHeadSize',2) end hold off xlabel('y_1') ylabel('y_2+y_3+y_4')
参数调整说明:
step:采样间隔,数值越小箭头显示越密集,反之越稀疏quiver函数中的最后一个缩放系数(上述代码为0.02):控制箭头整体尺寸MaxHeadSize:仅控制箭头头部的大小
内容的提问来源于stack exchange,提问作者MathMath
相关产品推荐
相关产品推荐

