MATLAB如何画图
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章主要介绍了MATLAB如何画图,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。最近需要做点东西,其中一步就需要画上面这种图,如上
千家信息网最后更新 2025年02月02日MATLAB如何画图
这篇文章主要介绍了MATLAB如何画图,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
最近需要做点东西,其中一步就需要画上面这种图,如上图所示,我想把左边的各个红色方块与右边所有的蓝色圆圈连线连起来。一般情况下我们都是用两层for循环然后plot,但是这篇推送将说明一下如何用arrayfun来完成该图的绘制。(arrayfun中嵌套着arrayfun)
实际上后来,我统计了一下 用for循环和用arrayfun这两种方法的运行的时间发现这两种方法耗时基本一样,甚至用for循环这种方法的耗时要比用arrayfun这种方法的耗时要小一点点,不过用arrayfun要简洁点。
看程序之前,之前先复习一下arrayfun吧
|
|
V
避免无用的循环--fun系列的另外三个函数
代码:
clear
clc
close all
% 输入设备的坐标
in_x = zeros(1, 10);
in_y = linspace(0, 100, 10);
% 输出设备的坐标
out_x = 200.*ones(1, 30);
out_y = linspace(0, 100, 30);% 方法1:arrayfun
tic
figure(1)
ax = axes('NextPlot', 'add');
f = @(x, y) arrayfun(@(x_out, y_out) plot([x, x_out], [y, y_out]), out_x, out_y);
arrayfun(f, in_x, in_y)
toc
% 方法2:for循环
tic
figure(2)
ax2 = axes('NextPlot', 'add');
for i = 1 : length(in_x)
for j = 1 : length(out_x)
plot([in_x(i) out_x(j)], [in_y(i) out_y(j)])
end
end
toc
用arrayfun的方法,那两句的解释如下:
实际上用一层for循环,再用一个arrayfun这样运行速度会块一倍,如下面的方法三,我用arrayfun嵌套arrayfun纯粹是想捣鼓一下。不过arrayfun再嵌套一个arrayfun确实简洁,但是可读性降低了,还运行的不快!
% 方法三:一层for循环再用一个arrayfun
tic
figure(3)
ax3 = axes('NextPlot', 'add');
for i = 1 : length(in_x)
f = @(x, y) line([in_x(i), x], [in_y(i), y]);
arrayfun(f, out_x, out_y)
end
toc
三种方法的运行时间如下:
我把那个输入的点数改成了100,输出的点数改成了300!
感谢你能够认真阅读完这篇文章,希望小编分享的"MATLAB如何画图"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
方法
循环
篇文章
运行
简洁
坐标
实际
时间
点数
设备
输入
输出
三个
上图
不快
东西
代码
价值
兴趣
函数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
拼卡网络技术有限公司
云服务器和服务器近期价格
hadoop 关系数据库
舒城找网络技术
安徽惠普服务器虚拟化解决方案
银行网络安全维护
计算机网络技术是真的坑
没基础不会英语学软件开发
守望先锋游戏服务器错误
手机软件开发要求文凭吗
数据库 主从
南京无线网络技术有哪些
海南逸鑫网络技术
网络安全技术及应用 第版
c 连接数据库实现保存
双阳区网络技术咨询参考价格
软件开发职业责任
服务器无法启动安全审核服务
一种数据库管理系统
为什么幻塔服务器会维护
上海市大学生网络安全竞赛
苏州阿里云服务器专线连接
局 网络安全工作报告
数据库折线图表设计
工业网络技术实训过程
海南网络技术学院
nginx 文件服务器
导航系统数据库ARINC规范
可视化开源网络安全系统部署
xshell服务器无法连接