温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

MATLAB如何画图

发布时间:2021-12-30 17:22:42 阅读:197 作者:小新 栏目:大数据
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章主要介绍了MATLAB如何画图,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

MATLAB如何画图

最近需要做点东西,其中一步就需要画上面这种图,如上图所示,我想把左边的各个红色方块与右边所有的蓝色圆圈连线连起来。一般情况下我们都是用两层for循环然后plot,但是这篇推送将说明一下如何用arrayfun来完成该图的绘制。(arrayfun中嵌套着arrayfun)

实际上后来,我统计了一下 用for循环和用arrayfun这两种方法的运行的时间发现这两种方法耗时基本一样,甚至用for循环这种方法的耗时要比用arrayfun这种方法的耗时要小一点点MATLAB如何画图不过用arrayfun要简洁点。

看程序之前,之前先复习一下arrayfun吧

|

|

V

避免无用的循环——fun系列的另外三个函数

代码:

clearclcclose all% 输入设备的坐标in_x = zeros(110);in_y = linspace(010010);% 输出设备的坐标out_x = 200.*ones(130);out_y = linspace(010030);% 方法1:arrayfunticfigure(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% 方法2for循环ticfigure(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)])    endendtoc

用arrayfun的方法,那两句的解释如下:

MATLAB如何画图

实际上用一层for循环,再用一个arrayfun这样运行速度会块一倍,如下面的方法三,我用arrayfun嵌套arrayfun纯粹是想捣鼓一下。不过arrayfun再嵌套一个arrayfun确实简洁MATLAB如何画图,但是可读性降低了,还运行的不快!

% 方法三:一层for循环再用一个arrayfunticfigure(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)endtoc

三种方法的运行时间如下:

MATLAB如何画图

我把那个输入的点数改成了100,输出的点数改成了300!

感谢你能够认真阅读完这篇文章,希望小编分享的“MATLAB如何画图”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:https://my.oschina.net/MitchHong/blog/4503016

AI

开发者交流群×