精华内容
下载资源
问答
  • matlab quiver

    千次阅读 2012-03-09 20:41:00
    quiver(x,y,u,v)绘制的是从点(x,y)处指向(u,v)处的矢量 quiver(x,y,u,v,scale),scale的默认值可能是0.9 转载于:https://www.cnblogs.com/newlangwen/archive/2012/03/09/2388279.html...

    quiver(x,y,u,v)绘制的是从点(x,y)处指向(u,v)处的矢量

    quiver(x,y,u,v,scale),scale的默认值可能是0.9

    转载于:https://www.cnblogs.com/newlangwen/archive/2012/03/09/2388279.html

    展开全文
  • MATLAB quiver函数使用:绘制矢量箭头介绍quiver()功能注意1:quiver()对(x,y,u,v)的要求注意2:quiver()绘制箭头时所在的坐标系举例总结代码及冰流速数据 介绍 在科研出图中,经常需要在底图上绘制流速图、受力图、...

    介绍

    在科研出图中,经常需要在底图上绘制流速图、受力图、磁场方向图等,而MATLAB正好拥有一个对应的quiver函数可以使用。本文以冰流速制图为例介绍quiver函数的使用和注意事项。

    quiver()功能

    语法1:quiver(x,y,u,v)
    这是quiver最常用的命令形式,表示在(x,y)位置上绘制向量(u,v)。(x,y)为箭头的起始坐标,(u,v)为箭头的方向矢量,sqrt(uu+vv)为物理量的大小,arctan(v/u)为物理量的方向。

    语法2:quiver(x,y,u,v,scale)
    数值scale是指箭头的放大缩小比例。在默认情况下,quiver命令会自动调整箭头的大小,以保证箭头之间不重叠。例如,scale为2时,表示箭头放大2倍,以此类推。

    语法3:quiver(x,y,u,v,scale,‘LineSpec’)
    'LineSpec’表示绘制箭头的颜色、线型、 标志样式。例如’LineSpec’为’y’时,表示箭头显示为黄色。

    注意1:quiver()对(x,y,u,v)的要求

    quiver()要求(x,y,u,v)为同型矩阵,即x,y,u,v的行列数要相等,假设均为m行n列。(x,y)可以使用meshgrid()生成,例如要生成3行4列的矩阵索引,可以如下代码举例

    // An highlighted block
    [x,y] = meshgrid(1:4,1:3);
    %x =
    %     1     2     3     4
    %     1     2     3     4
    %     1     2     3     4
    %y = 
    %     1     1     1     1
    %     2     2     2     2
    %     3     3     3     3
    

    可以看出,meshgird(1:n,1:m),第一个参数是列数,第二个参数是行数,结果中,x表示列数,y表示行数。这与MATLAB中的矩阵表示"先行后列"是相反的,因此在使用meshgrid()生成矩阵索引时需要注意调整行数和列数的位置

    注意2:quiver()绘制箭头时所在的坐标系

    quiver()绘制箭头所在的坐标系是常见的笛卡尔坐标系,如下图所示,x轴向右为正,y轴向上为正,因此这解释了【注意1】中为何x表示列数,y表示行数。
    x轴向右为正,y轴向上为正
    但是,考虑到矩阵格式的图像时,矩阵的左上角为(1,1),矩阵描述的坐标系是向右为正,向下为正。因此,(u,v)同样分别表示水平方向和垂直方向,注意v可能前面要加负号

    举例

    下图是用quiver(x,y,u,v)绘制的达尔克冰川流速图,这与冰流方向是不一致的。
    达尔克冰川冰流速图
    用quiver(x,y,u,-v)绘制箭头时,箭头沿水平轴镜像反转,显示是符合实际情况的。
    在这里插入图片描述

    总结

    quiver()函数原本是用于笛卡尔坐标系中的,当用quiver()函数显示矩阵形式的矢量场时,需要考虑到矩阵索引大小和笛卡尔坐标之间的区别,做好(x,y)与(u,v)在含义和正负符号上的一致性,才能画出准确的矢量场图形。

    代码及冰流速数据

    链接:https://pan.baidu.com/s/1MPgeLzTnde7st3yHS7VnFA
    提取码:4f5w
    链接

    展开全文
  • Matlab quiver函数用法 - 画矢量箭头图

    千次阅读 2020-01-11 17:25:36
    quiver单词释义 quiver就是“箭筒,箭套”的意思 quiver函数的使用 用于画矢量函数的箭头图(quiver plot)、 举一个矢量函数的例子: F⃗=i⃗x+i⃗x\vec{F}=\vec{i}x+\vec{i}xF=ix+ix 如下图,你可以把这个函数...

    提要:

    • quiver (x, y,u,v)在点(x,y)处画(u,v)所定义的向量箭头。x,y,u,v必须是维度和元素数都一样的矩阵。如果是一维数组的话,x,y,u,v的元素数必须一致。quiver函数会自动调整箭头的长度以适应显示
    • quiver(x,y,u,v,scale)scale 用于限定箭头的长度,如果scale = 1 则等值显示矢量的长度,而scale = 0.2 则显示0.2倍的矢量长度。
    • quiver(u,v)在x-y平面上均匀地画箭头图
    • quiver(x,y,u,v,LinSpec)用于限定箭头的属性,比如颜色,线型等。

    quiver就是“箭筒,箭套”的意思
    Quiver meaning

    quiver用于画矢量函数的箭头图(也叫速度图)(quiver plot, velocity vector plot)
    举一个矢量函数的例子:
    F=ix+jy\vec{F}=\vec{i}x+\vec{j}y
    如下图,你可以把这个函数看作位置矢量 r\vec{r},图中每一个箭头的方向都是向径(即从原点出发的一条直线),并且它的长度等于它到原点的距离。
    \vec{F}=\vec{i}x+\vec{j}y
    quiver (x, y,u,v)在点(x,y)处画(u,v)所定义的向量箭头。x,y,u,v必须是维度和元素数都一样的矩阵。如果是一维数组的话,x,y,u,v的元素数必须一致。quiver函数会自动调整箭头的长度以适应显示。

    %%  draw the velocity vector arrow of the vector function  i*x + j*y 
    % generate grids in a sub-definition area
    clc
    x = -1:0.5:1;
    y = -1:0.5:1;
    
    % generate the function values
    u = x;
    v = y;
    
    % draw vector arrow graph
    quiver(x, y, u, v)
    text(0.5, 0, '$\leftarrow \vec{F}=\vec{i}x + \vec{j}y $', 'HorizontalAlignment', 'left', 'Interpreter', 'latex', 'FontSize', 15);
    grid on
    axis equal
    

    \vec{F}=\vec{i}x+\vec{j}y_line
    quiver(x,y,u,v,scale)scale 用于限定箭头的长度,如果scale = 1 则等值显示矢量的长度,而scale = 0.2 则显示0.2倍的矢量长度。比如以上的代码,若加入scale参数,则输出图像如下:

    %%  draw the velocity vector arrow of the vector function  i*x + j*y 
    % generate grids in a sub-definition area
    clc
    x = -1:0.5:1;
    y = -1:0.5:1;
    
    % generate the function values
    u = x;
    v = y;
    
    % draw vector arrow graph
    scale = 0.2
    quiver(x, y, u, v,scale)
    text(0.5, 0, '$\leftarrow \vec{F}=\vec{i}x + \vec{j}y $', 'HorizontalAlignment', 'left', 'Interpreter', 'latex', 'FontSize', 15);
    grid on
    axis equal
    

    \vec{F}=\vec{i}x+\vec{j}y_line_scale=2

    quiver(u,v)在x-y平面上均匀地画箭头图
    比如函数F=iy+jxx2+y2\vec{F}=\frac{ -\vec{i}y+\vec{j}x}{\sqrt{x^{2}+y^{2}} } 使用quiver(x,y,u,v,scale)书写代码:

    %%  draw the velocity vector arrow of the vector function  (i*y + j*x)/sqrt(x^2 + y^2)
    % generate grids in a sub-definition area
    clc
    
    R = 2:2:6;
    theta = -pi:pi/4:pi;
    x = R'*cos(theta);
    y = R'*sin(theta);
    
    % generate the function values
    rr = sqrt(x.^2 + y.^2);
    fx = -y./rr;
    fy = x./rr;
    %[FX,FY] = meshgrid(fx,fy);
    
    % draw vector arrow graph
    scale = 0.2;
    quiver(x, y, fx, fy,scale)
    text(4, 2, '$\vec{F}=\frac{ -\vec{i}y+\vec{j}x}{\sqrt{x^{2}+y^{2}} } $', 'HorizontalAlignment', 'left', 'Interpreter', 'latex', 'FontSize', 15);
    grid on
    axis equal
    

    输出的图像为
    \vec{F}=\frac{ -\vec{i}y+\vec{j}x}{\sqrt{x{2}+y{2}} }
    而我们用quiver(u,v)替换掉quiver(x,y,u,v,scale),代码变为:

    %%  draw the velocity vector arrow of the vector function  (i*y + j*x)/sqrt(x^2 + y^2)
    % generate grids in a sub-definition area
    clc
    
    R = 2:2:6;
    theta = -pi:pi/4:pi;
    x = R'*cos(theta);
    y = R'*sin(theta);
    
    % generate the function values
    rr = sqrt(x.^2 + y.^2);
    fx = -y./rr;
    fy = x./rr;
    %[FX,FY] = meshgrid(fx,fy);
    
    % draw vector arrow graph
    scale = 0.2;
    quiver(fx, fy,scale)
    text(4, 2, '$\vec{F}=\frac{ -\vec{i}y+\vec{j}x}{\sqrt{x^{2}+y^{2}} } $', 'HorizontalAlignment', 'left', 'Interpreter', 'latex', 'FontSize', 15);
    grid on
    axis equal
    

    输出的箭头图不再是环形分布,而变成x-y平面上的均匀分布:
    \vec{F}=\frac{ -\vec{i}y+\vec{j}x}{\sqrt{x{2}+y{2}} }_uniform_distribution
    quiver(x,y,u,v,LinSpec)用于限定箭头的属性,比如颜色,线型等。
    示例代码:

    %%  draw the velocity vector arrow of the vector function  (i*y + j*x)/sqrt(x^2 + y^2)
    % generate grids in a sub-definition area
    clc
    
    R = 2:2:6;
    theta = -pi:pi/4:pi;
    x = R'*cos(theta);
    y = R'*sin(theta);
    
    % generate the function values
    rr = sqrt(x.^2 + y.^2);
    fx = -y./rr;
    fy = x./rr;
    %[FX,FY] = meshgrid(fx,fy);
    
    % draw vector arrow graph
    scale = 0.2;
    quiver(x, y, fx, fy,scale,'.r')
    text(4, 2, '$\vec{F}=\frac{ -\vec{i}y+\vec{j}x}{\sqrt{x^{2}+y^{2}} } $', 'HorizontalAlignment', 'left', 'Interpreter', 'latex', 'FontSize', 15);
    grid on
    axis equal
    

    LinSpec_Matlab_Quiver

    展开全文
  • quiver - Quiver or velocityplotGUI AlternativesTo graph selected variables, use the Plot Selector in the Workspace Browser, or use the FigurePalette Plot Catalog. Manipulate graphs in plot edit mode ....

    quiver - Quiver or velocity

    plot

    a4c26d1e5885305701be709a3d33442f.png

    GUI Alternatives

    To graph selected variables, use the Plot Selector a4c26d1e5885305701be709a3d33442f.png in the Workspace Browser, or use the Figure

    Palette Plot Catalog. Manipulate graphs in plot edit mode with the Property Editor.

    For details, see Plotting Tools — Interactive Plotting in the MATLAB Graphics

    documentation and Creating Graphics from the Workspace Browser in the MATLAB

    Desktop Tools documentation.

    Syntax

    quiver(x,y,u,v)

    quiver(u,v)

    quiver(...,scale)

    quiver(...,LineSpec)

    quiver(...,LineSpec,'filled')

    quiver(axes_handle,...)

    h = quiver(...)

    hlines = quiver('v6',...)

    Description

    A quiver plot displays velocity vectors as arrows with

    components (u,v) at the points (x,y).

    For example, the first vector is defined by components

    u(1),v(1) and is displayed at the point

    x(1),y(1).

    quiver(x,y,u,v) plots vectors

    as arrows at the coordinates specified in each corresponding pair

    of elements in x and y. The matrices x,

    y, u, and v must all be the same size

    and contain corresponding position and velocity components.

    However, x and y can also be vectors, as

    explained in the next section. By default, the arrows are scaled to

    just not overlap, but you can scale them to be longer or shorter if

    you want.

    Expanding x- and y-Coordinates

    MATLAB expands x and y if they are not

    matrices. This expansion is equivalent to calling meshgrid to generate matrices from vectors:

    [x,y] = meshgrid(x,y);

    quiver(x,y,u,v)

    In this case, the following must be true:

    length(x) = n and length(y)

    = m, where [m,n] =

    size(u) = size(v).

    The vector x corresponds to the columns of u

    and v, and vector y corresponds to the rows of

    u and v.

    quiver(u,v) draws vectors

    specified by u and v at equally spaced points in

    the x-y plane.

    quiver(...,scale)

    automatically scales the arrows to fit within the grid and then

    stretches them by the factor scale. scale

    = 2 doubles their relative length, and

    scale = 0.5 halves the length. Use

    scale = 0 to plot the velocity vectors without automatic

    scaling. You can also tune the length of arrows after they have

    been drawn by choosing the Plot Edit a4c26d1e5885305701be709a3d33442f.png tool, selecting the quivergroup

    object, opening the Property Editor, and adjusting the

    Length slider.

    quiver(...,LineSpec) specifies

    line style, marker symbol, and color using any valid

    LineSpec. quiver draws the markers at the origin

    of the vectors.

    quiver(...,LineSpec,'filled')

    fills markers specified by LineSpec.

    quiver(axes_handle,...) plots

    into the axes with the handle axes_handle instead of into

    the current axes (gca).

    h = quiver(...) returns the

    handle to the quivergroup object.

    Backward-Compatible Version

    hlines = quiver('v6',...)

    returns the handles of line objects instead of quivergroup objects

    for compatibility with MATLAB 6.5 and earlier.

    Note The v6

    option enables users of Version 7.x of MATLAB to create FIG-files

    that previous versions can open. It is obsolete and will be removed

    in a future version of MATLAB.

    Examples

    Showing the Gradient with Quiver Plots

    Plot the gradient field of the function a4c26d1e5885305701be709a3d33442f.png:

    [X,Y] = meshgrid(-2:.2:2);

    Z = X.*exp(-X.^2 - Y.^2);

    [DX,DY] = gradient(Z,.2,.2);

    contour(X,Y,Z)

    hold on

    quiver(X,Y,DX,DY)

    colormap hsv

    hold off

    a4c26d1e5885305701be709a3d33442f.png

    See Also

    Quivergroup Properties for property descriptions

    展开全文
  • quiver ( x ( 1 : 4 : end , 1 : 4 : end ) , y ( 1 : 4 : end , 1 : 4 : end ) , u ( 1 : 4 : end , 1 : 4 : end ) , v ( 1 : 4 : end , 1 : 4 : end ) , 'b' , 'MaxHeadSize' , 3 , 'autoScalefactor' , 1.7 , '...
  • matlab开发-quiver3d

    2019-08-27 04:22:41
    matlab开发-quiver3d。该函数改进了Quiver3可视化三维矢量场的技术。
  • matlab开发-Quiver5

    2019-08-24 14:14:43
    matlab开发-Quiver5。使用真正的三维箭头绘制箭头
  • matlabquiver函数的用法

    万次阅读 2019-05-05 17:34:27
    quiver(a,b,u,v):绘制矢量场,即箭头 a,b,u,v都是列向量,只有一列。 a,b表示绘制箭头的起始坐标 u,v表示所绘制箭头的方向坐标,u,v相当于x,y 箭头的长度,即模等于sqrt(u^2+v^2) 箭头的方向,即...
  • matlab开发-quiver3Dpatch

    2019-08-24 03:15:18
    matlab开发-quiver3Dpatch。基于补丁命令的彩色三维箭头绘制
  • Matlab中使用quiver函数进行绘制矢量图时出现以下图像: quiver是生成矢量图的函数,quiver(x,y,u,v)是在(x,y)处显示(u,v)这个矢量。 经过查找,这种情况的原因一种是版本不对;另一种就是x轴,y轴的量级不对。...
  • Polking,用于解决涉及常微分方程的问题,比较方便,这里可以下载dfield与pplane的.m文件 在MATLAB中调用dfield,呈现 : 如果我们要绘制常微分方程x′=x2t 在MATLAB中调用pplane,呈现 以默认的微分方程为例,可以...
  • matlab quiver函数 使用…

    万次阅读 2017-03-14 10:55:41
    quiver(x,y,u,v) 该函数使用箭头来直观的显示矢量场。该调用格式表示通过在(x, y)指定的位置绘制小箭头来表示以该点为起点的向量(u,v)。 x、y、u、v的行数、列数必须对应相等。即x、y、u、v必须是同型矩阵。 需要...
  • matlab官方quiver介绍 速度场 在平面直角坐标系中,两个点(x1,y1)(x_1,y_1)(x1​,y1​)和(x2,y2)(x_2,y_2)(x2​,y2​)唯一地确定一个矢量或速度,现在将这个矢量平移到以(0,0)(0,0)(0,0)为起点得到得两个点坐标为(0,...
  • 1.quiver函数 一般用于绘制二维矢量场图,函数调用方法如下: quiver(x,y,u,v)   该函数展示了点(x,y)对应的的矢量(u,v)。其中,x的长度要求等于u、v的列数,y的长度要求等于u、v的行数。在绘制图像的...
  • 多维数组值传递、quiver3、quiver、plot3、plot等用法以及向量归一化问题实例解析!
  • Matlab中,我们可以使用quiver函数来画一个曲线的切线场。 代码示例: %% draw the fuction curve of y = sqrt(2 + x.^2) and its quiver plot %drawn the function plot x = -2:0.1:2; y = sqrt(2 + x.^2); ...
  • 可以利用matlab提供的meshgrid函数,为我们自动生成。 [cpp] view plain copy >> A=[1 2 3;4 5 6];  >> [height,width]=size(A);  >> [y,x]=meshgrid(1:width,1:height)    y ...

空空如也

空空如也

1 2 3 4 5 6
收藏数 105
精华内容 42
关键字:

matlabquiver

matlab 订阅