MATLAB中quiver3指令画出的箭头长度与实际不符

问题描述

笔者在用MATLAB画箭头的时候,发现quiver3指令画出的箭头长度与实际不符,具体表现如下:

我们先画一个从(0,0,0)到(10,10,10)的箭头,

quiver3(0,0,0,10,10,10);

 运行结果如下:

这里可以发现,实际显示中箭头的末端并不是在(10,10,10)的位置,而是在(9,9,9)的位置。


解决方法

解决方法很简单,在代码的后面加个“1”即可,表示缩放比例为1,即无缩放,具体效果如下:

还是画一个从(0,0,0)到(10,10,10)的箭头,但是在代码后面加上“1”,

quiver3(0,0,0,10,10,10,1);

运行结果如下:

可以看到,这次运行的结果就变正常了,箭头的末端处于(10,10,10)的位置。

个人猜测,发生此现象的原因是quiver3代码在不进行设置时,默认会自动缩放,从而使生成的箭头与实际代码不符。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Matlab,我们可以根据不同的需求来通过设置属性的方式实现Quiver箭头的颜色变化。 首先,我们可以使用Quiver函数来创建箭头,该函数可以设置箭头的起点、方向和长度等属性。例如,我们可以使用以下命令创建一个简单的箭头图: ```matlab x = 0:0.2:2; y = 0:0.2:2; [X, Y] = meshgrid(x, y); U = cos(X).*Y; V = sin(X).*Y; quiver(X, Y, U, V); ``` 默认情况下,箭头的颜色是根据箭头长度来自动变化的。较长的箭头通常显示为红色,而较短的箭头通常显示为蓝色。这种颜色映射可以通过调用colorbar函数来添加一个颜色条来进行校准和解释。 要自定义箭头的颜色,我们可以使用Quiver函数的'Color'属性来设置单一颜色。下面是一个示例: ```matlab x = 0:0.2:2; y = 0:0.2:2; [X, Y] = meshgrid(x, y); U = cos(X).*Y; V = sin(X).*Y; quiver(X, Y, U, V, 'Color', 'r'); % 设置箭头的颜色为红色 ``` 此外,我们还可以通过传递一个与箭头数量相同的向量来控制每个箭头的单独颜色。例如,我们可以使用以下命令将箭头的颜色设置为某种渐变: ```matlab x = 0:0.2:2; y = 0:0.2:2; [X, Y] = meshgrid(x, y); U = cos(X).*Y; V = sin(X).*Y; C = linspace(0, 1, numel(U)); % 创建一个渐变向量 quiver(X, Y, U, V, C); % 设置箭头的颜色根据C向量进行渐变 colorbar; % 添加一个颜色条来解释颜色的变化 ``` 通过这些方法,我们可以根据不同的需求来实现箭头颜色的变化和自定义。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值