Matlab使用quiver函数图像箭头变形失真的 解决方法

在Matlab中使用quiver函数进行绘制矢量图时出现以下图像:
在这里插入图片描述
quiver是生成矢量图的函数,quiver(x,y,u,v)是在(x,y)处显示(u,v)这个矢量。
经过查找,这种情况的原因一种是版本不对;另一种就是x轴,y轴的量级不对。
从这个图来看,x轴的间隔是10,而y轴是0.1,这个比例大小相差过大。
再举一个栗子

x=[0:75]';
y=rand(76,1)*10000;
u=rand(76,1);
v=-0.5+rand(76,1);
plot(x,y);
hold on;
a=max(v)./max(y);
v=v./a;
b=max(u)./max(x);
u=u./b;
quiver(x,y,u,v,'MaxHeadSize',0.1);

生成的图像是类似上图
在这里插入图片描述

x=[0:75]'; 
y=rand(76,1)*100;
u=rand(76,1);
v=-0.5+rand(76,1);
plot(x,y);
hold on;
a=max(v)./max(y);
v=v./a;
b=max(u)./max(x);
u=u./b;
quiver(x,y,u,v,'MaxHeadSize',0.1);

改动参数后生成图像如下
在这里插入图片描述
所以这类情况可以理解为x与y方向的数据量级差距过大
那么解决办法为调整量级,类似上方代码:
x轴方向数据是[0,75],而y轴方向是[0,10000],那么对y轴方向进行缩小,缩到[0,100]。满足量级要求。
需要注意的就是:
1.y轴对应的矢量v也需要进行相同的放缩。

a=max(v)./max(y);
v=v./a;

此处代码进行的就是这样的操作。
2.这里对y轴方向数据进行处理后,数据点的矢量方向实际上发生了一定的偏移。

简单的示意图
在这里插入图片描述

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值