matlab中各种线条,matlab – 如何在矢量中的所有点之间绘制线条?

一种解决方案是使用函数

MESHGRID为每个点组合创建一组索引.然后,您可以使用函数

LINE绘制每一行(其中每列数据绘制一行):

N = 10; %# Number of points

x = rand(1,N); %# A set of random x values

y = rand(1,N); %# A set of random y values

[I,J] = meshgrid(1:N); %# Create all the combinations of indices

index = [I(:) J(:)].'; %'# Reshape the indices

line(x(index),y(index),'Color','k'); %# Plot the lines

hold on

plot(x,y,'r*'); %# Plot the points

编辑:

您可能会注意到上述解决方案将为每个连接绘制一条线,这意味着它将绘制零长度连接点到自身的线,并将为每个连接绘制2条线(即从点A到点B以及从点B到点一个).这是另一个解决方案(使用函数HANKEL和FIND),它不会绘制冗余或不必要的行:

N = 10; %# Number of points

x = rand(1,N); %# A set of random x values

y = rand(1,N); %# A set of random y values

[r,c,v] = find(hankel(2:N)); %# Create unique combinations of indices

index = [v c].'; %'# Reshape the indices

line(x(index),y(index),'Color','k'); %# Plot the lines

hold on

plot(x,y,'r*'); %# Plot the points

上述两种解决方案都创建了视觉上相同的图:

有关时间的说明……

出于好奇,我想我会把我的HANKEL解决方案与Amro’s非常简洁的NCHOOSEK解决方案进行比较.对于N = 10,没有明显的差异.然而,当我将N增加到更大的值时,我开始看到NCHOOSEK解决方案开始变得非常缓慢:

> N = 200

>> tic; [r,c,v] = find(hankel(2:N)); index = [v c].'; toc; %'

Elapsed time is 0.009747 seconds.

>> tic; pairs = nchoosek(1:N,2).'; toc; %'

Elapsed time is 0.063982 seconds.

> N = 1000

>> tic; [r,c,v] = find(hankel(2:N)); index = [v c].'; toc; %'

Elapsed time is 0.175601 seconds.

>> tic; pairs = nchoosek(1:N,2).'; toc; %'

Elapsed time is 12.523955 seconds.

我有点惊讶,直到我查看NCHOOSEK的代码(在MATLAB命令窗口中输入类型nchoosek).变量不仅在循环中生长而不是在preallocated中(正如Amro在注释中指出的那样),但所使用的算法也是递归的,这意味着进行了许多函数调用.我还注意到NCHOOSEK帮助文本末尾的这一行:

This syntax is only practical for situations where N is less than about 15.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MATLAB ,可以使用 `geoshow` 函数在地图上绘制地理数据。该函数可以接受各种类型的地理数据,包括矢量数据、栅格数据、网格数据等等。下面是一个简单的例子,演示如何在地图上绘制一个简单的矢量数据: ```matlab % 加载地图数据 load coastlines % 创建地图对象 worldmap('World') % 绘制海岸线 geoshow(coastlat, coastlon, 'Color', 'blue') ``` 上面的代码首先加载了一个变量 `coastlat` 和 `coastlon`,这两个变量包含了全球海岸线的经纬度坐标。然后,通过 `worldmap` 函数创建了一个地图对象,接着使用 `geoshow` 函数将海岸线绘制在地图上。 除了海岸线,还可以在地图上绘制其他类型的地理数据,例如行政区划、地形图、气候数据等等。不同类型的数据需要使用不同的函数进行绘制,例如: - 行政区划:使用 `geobubble` 函数可以在地图上绘制气泡图,每个气泡代表一个行政区,气泡的大小可以表示该行政区的人口、面积等等。 - 地形图:使用 `contourm` 函数可以在地图上绘制等高线图,每条等高线代表一个高度值,可以使用不同的颜色表示不同高度区域。 - 气候数据:使用 `geoshow` 函数可以在地图上绘制气候数据,例如温度、降水量等等,可以使用不同的颜色表示不同的数据值。 需要注意的是,地图数据需要从相应的数据源获取,或者使用 MATLAB 自带的地图数据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值