% 已知圆心和半径画圆:参考:https://blog.csdn.net/ZLK961543260/article/details/70216089

% 对比三种画圆方法,运算时长对比如下

% viscircle:0.22;比较快

% rectangle:0.21;比较快

% function:0.39:慢

[Type Sheet Format]=xlsfinfo('现状OD数据及其他数据.xls');

OD=xlsread('现状OD数据及其他数据.xls',Sheet{1});

center_area=xlsread('现状OD数据及其他数据.xls',Sheet{2});

x_pos=center_area(:,4); %数据第四列为x坐标(米)

y_pos=center_area(:,5); %数据第五列为y坐标(米)

area=center_area(:,3); %数据第3列为面积(平方米):注意与x,y的坐标对应

r_all=sqrt(area/pi); %计算节点覆盖半径,为后文画圆做准备

nanbool=isnan(r_all); %数据1到4行为四个物流园区,通过r为nan,提取出四个物流园区

first_node_num=length(find(nanbool==1)); %统计物流园区个数

r_index=find(nanbool==0,1); %节点开始的行数index

r=r_all(r_index:end); %r存储节点的覆盖半径

jam_coef=center_area(r_index:end,6); %数据第六列为交通拥堵系数,只有节点才有,具体在散点图中的标注用text实现,

% 具体标注可参考https://zhidao.baidu.com/question/924100748051179779.html

% 散点图颜色可参考:https://zhidao.baidu.com/question/521200141403285445.html?qbl=relate_question_1&word=matlabscatter%B1%EA%D7%A2

% 具体标注和颜色还未完善

% 方法一:viscircle

%用viscircle画节点的覆盖范围,用scatter画物流园区和节点

x_2_pos=x_pos(r_index:end); %节点x

y_2_pos=y_pos(r_index:end); %节点y

centers=[x_2_pos,y_2_pos]; %节点圆心位置

tic

fig1=figure

colors = {'b','r','g','y','k'};

%定义colors,后文画图方便,也可以只是掉,直接在后文加入'k','g'等,具体可查询matlab画图颜色标记表示

viscircles(centers,r,'color',colors{1}); %matlab自带函数:已知圆心和半径画圆

hold on

scatter(x_2_pos,y_2_pos,'filled');

%已知x,y坐标,画散点图命令scatter(x,y),filled表示圆是实心填充

hold on %画多个圆时用hold on命令

scatter(x_pos(1:4),y_pos(1:4),'filled'); %数字4指的是物流园区的个数,均可以替换成first_node_num

%scatter(x_pos(1:first_node_num),y_pos(1:first_node_num),'filled');

toc

% % 方法二:rectangle

% % 用矩形函数rectangle 画圆,rectangle函数一次只能画一个矩形/圆;需要用到循环,与viscircle比较计算时长,tic,toc

tic

fig2=figure

%矩形函数画多个圆只能用for命令进行循环,用矩阵读取会发生错误

for i=1:length(r)

rectangle('Position',[x_2_pos(i)-r(i),y_2_pos(i)-r(i),2*r(i),2*r(i)],'Curvature',[1,1],'linewidth',1,'EdgeColor','b') %rectangle('position',[x_pos,y_pos,length,width])

end %[1,1]表示构造圆/椭圆

hold on

scatter(x_2_pos,y_2_pos,'filled');

hold on

scatter(x_pos(1:4),y_pos(1:4),'filled');

%scatter(x_pos(1:first_node_num),y_pos(1:first_node_num),'filled');

toc

% 方法三:构建function

tic

fig3=figure

for j=1:length(r)

x=x_2_pos(j);

y=y_2_pos(j);

r1=r(j);

% function [] = plot1( x,y,r1 )

theta=0:0.1:2*pi;

Circle1=x+r1*cos(theta);

Circle2=y+r1*sin(theta);

c=[123,14,52]; %color:BGR? RBG?help

plot(Circle1,Circle2,'c','linewidth',1);

hold on

end

scatter(x_2_pos,y_2_pos,'filled');

hold on

scatter(x_pos(1:4),y_pos(1:4),'filled');

toc

绘图结果:

figure1:

figure2:

figure3:

赛题具体地图:

参考资料:

1.https://blog.csdn.net/ZLK961543260/article/details/70216089

2.数据来源为2017年研究生数学建模竞赛F题赛题数据

来源:https://www.cnblogs.com/feynmania/p/12970209.html

matlab已知圆心和半径怎么作圆,matlab根据圆心和半径画圆三种方式相关推荐

  1. 已知函数和y值求自变量用matlab,matlab已知函数值求自变量,求助

    思路是这样的:你得到最小的函数值后,把它带入你作图的方程反解自变量的值.我不知道你画的这个函数图像的方程什么,我用一个二次方程y=x.^2+x给你做示范:先做图:x=-10:0.1:10;y=x.^2 ...

  2. SQL:使用备份向导、SQL命令、导出数据三种方式对已建立的数据库进行备份

    SQL:使用备份向导.SQL命令.导出数据三种方式对已建立的数据库进行备份 目录 题目要求 解题步骤 题目要求 使用备份向导备份数据库 "DEMO_4_2_2_1"到考生文件夹&q ...

  3. 视频提取关键帧的三种方式【已调通】

    推荐优化后的视频关键帧提取方法,已经包装成工具类,代码做了优化,性能和效果更好. 视频提取关键帧工具类KeyFramesExtractUtils.py,动态支持三种取帧方式,关键参数可配置,代码经过优 ...

  4. matlab已知圆心和半径怎么作圆,MATLAB中已知圆心和半径画圆

    今天在用MATLAB编程的时候,用到了已知圆心和半径,画圆的程序,上网搜了一下,主要有下面两种,在这里总结一下:(这里我都是放在函数中做的,想画多个圆的话可以加个for循环调用一下函数,或者直接用向量 ...

  5. matlab已知xyz拟合标定map,matlab练习题

    <matlab练习题>由会员分享,可在线阅读,更多相关<matlab练习题(16页珍藏版)>请在人人文库网上搜索. 1.1. 在命令窗口输入语句:a=1,2,3;4,5,6;7 ...

  6. MATLAB已知坐标均匀取电,基于MATLAB带钢卷取电液伺服控制系统的分析(word文档良心出品)(11页)-原创力文档...

    系统动力学结课作业-基于MATLAB的 带钢卷取电液控制系统的研究 姓名: 王紫民 流水号:学号: 专业: 机械工程 日期: 2014.05.10 基于MATLAB^钢卷取电液伺服控制系统的分析 一. ...

  7. 已知协方差矩阵求相关矩阵matlab,已知协方差矩阵求相关矩阵

    matlab中已知协方差矩阵怎样算相关系数? 已知协方差矩阵,计算相关系数可以按图中的公式进行. R就是相关系数矩阵,C为协方差矩阵. >> a=rand(5,5) a = 0.9501 ...

  8. matlab已知三点求夹角,已知3点如何求其中两点对第3点的夹角

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:已知3点如何求其中两点对第3点的夹角? 问题详情:有3个问题:1)已知3点如何求其中两点对第3点的夹角?2)如何回答:1)已知3点求 ...

  9. matlab已知函数表达式画函数图像,怎么用matlab画已知函数表达式的一个函数图像?函数比较复杂的……...

    点击查看怎么用matlab画已知函数表达式的一个函数图像?函数比较复杂的--具体信息 答:要具体哦,如果一个自变量,函数图像就是曲线,用plot 如果是2个自变量,函数图像就是曲面了,如f=3*exp ...

最新文章

  1. js 实现精确加减乘除运算之BigDecimal.js
  2. hosts 持续更新 - laod
  3. 平安数据中心高可用运维白皮书
  4. conscience ['kɔnʃəns]
  5. NoSQL Databases - CouchDB
  6. 020.day20 线程概述 多线程优缺点 线程的创建 线程常用方法 生命周期 多线程同步...
  7. POJ 2367 Genealogical tree【拓扑排序】
  8. 传销组织生化环材说(正论)
  9. Quartus II使用Testbench
  10. python实现语义分割_遥感图像语义分割常用精度指标及其python实现(支持多类)
  11. 遗传算法求解TSP问题-python实现
  12. securecrt 上传文件到服务器,如何在SecureCRT下使用Zmodem传输文件
  13. nb信号和4g信号_【行业】万物互联的世界NB-IoT VS 4G,到底哪个更能打?
  14. linux 命令行 双引号,每天一个Linux命令之shell单引号和双引号的经典解释
  15. 爬取电影《无双》影评数据,分析,可视化
  16. altium 去掉部分铺铜_DCS系统接地(四部分)
  17. keras神经风格迁移_知识分享 | 神经风格迁移-把每一张图片都变成自己喜欢的样子...
  18. MATLAB画个直方图
  19. 互动媒体作业之艺术作品赏析
  20. 烤仔的朋友们 | 手把手教你掌握 DeFi 隐私保护实用技巧

热门文章

  1. 如何用EXCEL表格批量生成文件夹,并把指定文件拷贝到新文件夹里
  2. Opencv 以指定格式保存图片
  3. 暖手宝上架亚马逊欧盟站CE认证办理保暖神器便携式暖宝宝
  4. 图像处理-基于图像梯度L0范数最小化(L0smooth)的保护边缘平滑滤波
  5. LIST FOR MM2
  6. 2021 Google 开发者大会 | 更简洁、更高效,创造更流畅的移动端用户体验
  7. 小心了,40个迹象表明你还是PHP菜鸟
  8. 华为交换机端口转发规则
  9. flowable 使用流程发起人分配
  10. codepush相关