matlab已知圆心和半径怎么作圆,matlab根据圆心和半径画圆三种方式
% 已知圆心和半径画圆:参考: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根据圆心和半径画圆三种方式相关推荐
- 已知函数和y值求自变量用matlab,matlab已知函数值求自变量,求助
思路是这样的:你得到最小的函数值后,把它带入你作图的方程反解自变量的值.我不知道你画的这个函数图像的方程什么,我用一个二次方程y=x.^2+x给你做示范:先做图:x=-10:0.1:10;y=x.^2 ...
- SQL:使用备份向导、SQL命令、导出数据三种方式对已建立的数据库进行备份
SQL:使用备份向导.SQL命令.导出数据三种方式对已建立的数据库进行备份 目录 题目要求 解题步骤 题目要求 使用备份向导备份数据库 "DEMO_4_2_2_1"到考生文件夹&q ...
- 视频提取关键帧的三种方式【已调通】
推荐优化后的视频关键帧提取方法,已经包装成工具类,代码做了优化,性能和效果更好. 视频提取关键帧工具类KeyFramesExtractUtils.py,动态支持三种取帧方式,关键参数可配置,代码经过优 ...
- matlab已知圆心和半径怎么作圆,MATLAB中已知圆心和半径画圆
今天在用MATLAB编程的时候,用到了已知圆心和半径,画圆的程序,上网搜了一下,主要有下面两种,在这里总结一下:(这里我都是放在函数中做的,想画多个圆的话可以加个for循环调用一下函数,或者直接用向量 ...
- matlab已知xyz拟合标定map,matlab练习题
<matlab练习题>由会员分享,可在线阅读,更多相关<matlab练习题(16页珍藏版)>请在人人文库网上搜索. 1.1. 在命令窗口输入语句:a=1,2,3;4,5,6;7 ...
- MATLAB已知坐标均匀取电,基于MATLAB带钢卷取电液伺服控制系统的分析(word文档良心出品)(11页)-原创力文档...
系统动力学结课作业-基于MATLAB的 带钢卷取电液控制系统的研究 姓名: 王紫民 流水号:学号: 专业: 机械工程 日期: 2014.05.10 基于MATLAB^钢卷取电液伺服控制系统的分析 一. ...
- 已知协方差矩阵求相关矩阵matlab,已知协方差矩阵求相关矩阵
matlab中已知协方差矩阵怎样算相关系数? 已知协方差矩阵,计算相关系数可以按图中的公式进行. R就是相关系数矩阵,C为协方差矩阵. >> a=rand(5,5) a = 0.9501 ...
- matlab已知三点求夹角,已知3点如何求其中两点对第3点的夹角
公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:已知3点如何求其中两点对第3点的夹角? 问题详情:有3个问题:1)已知3点如何求其中两点对第3点的夹角?2)如何回答:1)已知3点求 ...
- matlab已知函数表达式画函数图像,怎么用matlab画已知函数表达式的一个函数图像?函数比较复杂的……...
点击查看怎么用matlab画已知函数表达式的一个函数图像?函数比较复杂的--具体信息 答:要具体哦,如果一个自变量,函数图像就是曲线,用plot 如果是2个自变量,函数图像就是曲面了,如f=3*exp ...
最新文章
- js 实现精确加减乘除运算之BigDecimal.js
- hosts 持续更新 - laod
- 平安数据中心高可用运维白皮书
- conscience ['kɔnʃəns]
- NoSQL Databases - CouchDB
- 020.day20 线程概述 多线程优缺点 线程的创建 线程常用方法 生命周期 多线程同步...
- POJ 2367 Genealogical tree【拓扑排序】
- 传销组织生化环材说(正论)
- Quartus II使用Testbench
- python实现语义分割_遥感图像语义分割常用精度指标及其python实现(支持多类)
- 遗传算法求解TSP问题-python实现
- securecrt 上传文件到服务器,如何在SecureCRT下使用Zmodem传输文件
- nb信号和4g信号_【行业】万物互联的世界NB-IoT VS 4G,到底哪个更能打?
- linux 命令行 双引号,每天一个Linux命令之shell单引号和双引号的经典解释
- 爬取电影《无双》影评数据,分析,可视化
- altium 去掉部分铺铜_DCS系统接地(四部分)
- keras神经风格迁移_知识分享 | 神经风格迁移-把每一张图片都变成自己喜欢的样子...
- MATLAB画个直方图
- 互动媒体作业之艺术作品赏析
- 烤仔的朋友们 | 手把手教你掌握 DeFi 隐私保护实用技巧