MATLAB如何画图
发表于:2025-02-19 作者:千家信息网编辑
千家信息网最后更新 2025年02月19日,这篇文章主要介绍了MATLAB如何画图,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。最近需要做点东西,其中一步就需要画上面这种图,如上
千家信息网最后更新 2025年02月19日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安全错误
数据库的锁怎样保障安全
图书馆信息管理数据库组织结构
德国互联网科技
勇士软件开发俱乐部
贵州GIS软件开发
计算机的网络安全目录
家庭网络安全管理制度
数据库数据丢失应付措施
丽水电脑软件开发工具
网吧管理员维护网络安全
达梦数据库视图生成工具
软件开发的主要程序
软件开发的流程图
寸半皮软件开发工作室在哪
网络安全存在哪些危险
服务器存储有哪些类型
追梦人网络技术有限公司
给老师网络安全培训的目的
网络安全隐私探讨
网络安全 宣传志愿服务活动
河北英雄联盟服务器云空间
安徽机械软件开发供应商
服务器等级管理是什么意思
计算机与网络安全知识考试题库
会计师对软件开发项目审计
微端服务器不加载
在sql创建数据库
直播软件开发前十名
db2命令 启动数据库
pks服务器
mysql数据库不能远程访问