【笔记】MATLAB中的图形(2)

三维作图

1、mesh(z)语句

mesh(z)语句可以给出矩阵z元素的三维消隐图,网络表面由z坐标点定义,与前面叙述的x-y平面的线格相同,图形由临近的点连接而成。它可用来显示用其他方式难以输出的包含大量数据的大型矩阵,也可以用来绘制z变量函数。

显示两变量的函数z=f(x,y),第一步需产生特定的行和列的x-y矩阵;然后计算函数在各网格点的值;最后用mesh函数输出。

下面我们绘制sin(r)/r函数的图形。建立图形用一下方法:

>> x=-8:.5:8;
>> y=x';
>> x=ones(size(y))*x;
>> y=y*ones(size(y))';
>> R=sqrt(x.^2+y.^2)+eps;
>> z=sin(R)./R;
>> mesh(z)  %试运行mesh(x,y,z),看看与mesh(z)有什么不同?

各语句的意义是:首先建立行向量x,列向量y;然后按向量的长度建立1-矩阵;用向量乘以产生的1-矩阵,生成网格矩阵,他们的值对于与x-y坐标平面;接下来计算各网格点的半径;最后计算函数值矩阵z。用mesh函数即可得到图形(图 1)。

image

图 1 三维消隐图

第一条语句x的赋值为定义域,在其上估计函数;第三条语句建立一个重复行的x矩阵,第四条语句产生y的响应,第五条语句产生矩阵R(其元素为各网格点到原点的距离)。

另外,上述命令系列中的前4行可以用以下语句替代:

>> [x,y]=meshgrid(-8:0.5:8)

2、与mesh相关的几个函数

(1)meshc与函数mesh的调用方式相同,只是该函数在mesh的基础上又增加了绘制相应等高线的功能。

例:

>> [x,y]=meshgrid([-4:.5:4]);
>> z=sqrt(x.^2+y.^2);
>> meshc(z)

image

图 2 meshc图

(2)函数meshz与mesh的调用方式也相同,不同的是该函数在mesh函数的作用之上增加了屏蔽作用,即增加了边界面屏蔽。

>> [x,y]=meshgrid([-4:.5:4]);
>> z=sqrt(x.^2+y.^2);
>> meshz(z)

image

图 3 meshz图

3、其他几个三维绘图函数

(1)绘制球体sphere,调用格式:

[x,y,z]=sphere(n)

此函数生成三个(n+1)x(n+1)阶的矩阵,再利用函数surf(x,y,z)可生成单位球面。

>> sphere(30) %只绘制球面,不返回值
>> axis square

image

图4 球面图

若只输入sphere画图,则n=20,为默认值。

(2)surf函数也是MATLAB中常用的三维绘图函数。其调用格式为:

surf(x,y,z,c)

输入参数的设置与mesh相同,不同的是mesh函数绘制的是一网格图,而surf绘制的是着色的三维表面。MATLAB语言对表面进行着色的方法是,在得到相应的网格后,对每一网格依据该网格所代表的节点的色值(由变量c控制),来定义这一网格的颜色。若不输入c,则默认c=z。

例子:

>> % 绘制地球表面的气温分布示意图。
>> [a,b,c]=sphere(40);
>> %求绝对值
>> t=abs(c);
>> surf(a,b,c,t);
>> axis equal
>> colormap('hot')

image

图 5 等温线示意图

4、图形的控制与修饰

(1)坐标轴的控制函数axis,调用格式如下:

axis([xmin,xmax,ymin,ymax,zmin,zmax])

用此命令可以控制坐标轴的范围。

与axis相关的几条命令还有:

axis auto    自动模式,使得图形的坐标范围满足图中一切元素。

axis square   使绘图区为正方形。

axis on   恢复对坐标轴的一切设置。

axis off    取消度坐标轴的一切设置。

axis nanual  以当前的坐标限制图形的绘制。

(2)grid on 在图形中绘制坐标网格。

grid off取消坐标网格。

(3) xlabel、ylabel、zlabel分别为x轴、y轴、z轴添加标注。title为图形添加标题。

以上函数的调用格式大同小异,以xlabel为例:

xlabel;(‘标注文本’,‘属性1’,‘属性2’,…)

这里的属性包括字体大小,字体名,颜色等。

统计回归图

对平面上n个点:(x1,y1),(x2,y2),…,(xn,yn),在平面直线族{y=a+bx|a,b为实数}中寻找 一条直线y=a0+b0x,使得散点到与散点相对应的在直线上的点之间的纵坐标的误差的平方和最小,用微积分方法可得:

image

所求得的直线y=a0+b0x称为回归直线。

例:已知如下点列,求其回归直线,并计算最小误差平方和。

表1 示例数据
x0.10.110.120.130.140.150.160.170.180.200.210.23
y4243.54545.54547.5495350555560

程序如下:

>> x=[0.1 0.11 0.12 0.13 0.14 0.15 0.16 0.17 0.18 0.20 0.21 0.23];
>> y=[42 43.5 45 45.5 45 47.5 49 53 50 55 55 60];
>> n=length(x);
>> xb=mean(x);
>> yb=mean(y);
>> x2b=sum(x.^2)/n;
>> xyb=x*y'/n;
>> b=(xb*yb-xyb)/(xb^2-x2b);
>> a=yb-b*xb;
>> y1=a+b.*x;
>> plot(x,y,'*',x,y1);
>> serror=sum((y-y1).^2)
serror = 
          17.4096

image

图6 回归直线

转载于:https://www.cnblogs.com/gtts/archive/2011/05/12/2044239.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261433.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kindeditor放置两个调用readonly错误

开始 需要调用Kindeditor中的readonly的方法,但是一直提示edit is undefined 而editor.readonly(true)又只对第一个对象有效 所以只能换换形式,干脆将下面的kindeditor拿上来 虽然是满足自己这个需求,但是真正的原因解决办法,还是…

acl在内核里的位置_Linux 进程在内核眼中是什么样子的?

本篇算是进程管理的的揭幕篇,简单介绍一个进程在内核眼里的来龙去脉,为接下来的进程创建,进程调度,进程管理等篇章做好学习准备。从程序到进程再到内核啥是程序,啥是进程,一张图可以给我们解释:…

majikan

转载于:https://www.cnblogs.com/YOUEN/p/3179091.html

经典中的品味:第一章 C++的Hello,World!

“程序设计要通过编写程序的实践来学习”—Brian Kernighan 1.1 程序 何为程序?简单的说,就是为了使计算机能够做事,你需要在繁琐的细节中告诉它怎么做。对于怎么做的描述就是程序。编程是书写和测试怎么做的过程。维基百科上说,一个程序就像…

使用eclipse svn塔建(配置)时的一点点心得

有没有人遇到下面这种情况??自己创建的SVN如下: 但网上别人搭建好的是这样子的: 就是为什么我的只有个主文件,而没有src、webroot、meta-inf、web-inf等子文件呢?? 这是我找了很多网上的资料&am…

实例构造器和类(引用类型)

构造器是允许将类型的实例初始化为良好状态的一种特殊方法。构造器方法在“方法定义元数据表”中始终教.ctor。创建一个引用类型的实例时,首先为实例的数据字段分配内存,然后初始化对象的附加字段(类型对象指针呵呵同步块索引)&am…

android 文件选择器_Android 开发 打开系统文件、图片、视频等 实现单选多选功能...

在网上搜下,如何实现图片的多选或者文件的多选,令人纳闷的是居然多是moudle、或第三方jar包,当然第三方的工程功能复杂或兼容性比较好,并没有说明Android系统是如何提供多选的。既然这么多图片选择器的工程、或者是文件选择器的工…

C语言错误: HEAP CORRUPTION DETECTED

程序源代码&#xff1a; //写文件两种方式(文本文件和二进制文件)#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h>//文本写文件 int writeWord(const char *path,const char *pword){int ERRO_MSG 0;if (path N…

您不能不知的ToString()方法

1.1.1 摘要 相信大家对ToString()方法再熟悉不过了&#xff0c;由于该方法是.NET程序中最常用的方法之一&#xff0c;我们除了可以直接调用ToString()方法之外&#xff0c;.NET中的某些方法也隐式调用ToString()方法&#xff08;WPF&#xff0c;Windows Form和Silverlight等&am…

微信转账一次显示两个_微信为啥分红包和转账两大功能?这4个区别你要知道,望相互转告...

众所周知&#xff0c;自从移动支付普及之后&#xff0c;支付宝、微信就已经成为人们手机中必备的APP&#xff0c;其中微信更是具备社交、支付等一系列功能&#xff0c;所以在国内吸引了超十一亿用户的使用&#xff01;当我们节假日、过年时&#xff0c;很多用户都喜欢给亲朋好友…

java 正则提取及替换字符串

2019独角兽企业重金招聘Python工程师标准>>> <% page import"java.util.regex.Pattern" %><% page import"java.util.regex.Matcher" %><% page import"java.util.List" %><% page import"java.util.Array…

使用R语言绘制中国地图

R语言环境 R3.1.1 Windows8.1 需要安装的packages: maptools,gp 绘图所需要的数据 中国地图的GIS数据 &#xff08;可以此下面的网址下载) http://cos.name/wp-content/uploads/2009/07/chinaprovinceborderdata_tar_gz.zip 是一个压缩包&#xff0c;完全解压后包含三个文件&am…

ASP.NET MVC 5 学习教程:控制器传递数据给视图

起飞网 ASP.NET MVC 5 学习教程目录&#xff1a; 添加控制器添加视图修改视图和布局页控制器传递数据给视图添加模型创建连接字符串通过控制器访问模型的数据生成的代码详解使用 SQL Server LocalDBEdit方法和Edit视图详解添加查询Entity Framework 数据迁移之添加字段添加验证…

如何将ListT转换相应的Html(xsl动态转换)(二)

一、前言 紧跟着上一篇随笔&#xff0c;本文主要涉及到如何将xml与xsl动态转换成html&#xff0c;这个才是最关键的地方&#xff0c;所有的内容都是围绕这个主题来进行开展的。根据指定的xsl样式将List<T>转换相应的Html&#xff0c;相关的随笔如下&#xff1a; &#xf…

win10大文件无法移动到U盘

想着把自己的一些文件整理整理&#xff0c;发现稍微大点的文件竟然不能copy到U盘&#xff0c;百度了一番&#xff08;不好意思&#xff0c;最近百度犯错查的正狠^_^&#xff09;,发现因为U盘的格式不是NTFS,只要把U盘格式改为NTFS就可以copy大文件了。 方法一&#xff1a;用命令…

为多孔介质的当量直径_新型纳米多孔碳材料在催化剂载体方面的应用

成分&#xff1a;基本成分为碳91-95%&#xff0c;氧4-8%&#xff0c;氢1%&#xff0c;具有良好的导电性&#xff08;2-10 S/cm&#xff09;和优良的化学稳定性。 结构&#xff1a;内部是三维贯通的纳米孔道结构&#xff0c;每个孔与周围12个孔相连&#xff0c;孔道结构有序&…

替换空格

题目描述&#xff1a; 请实现一个函数&#xff0c;将一个字符串中的空格替换成“%20”。例如&#xff0c;当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 时间复杂度o(n)的算法 先遍历一次字符串统计出空格的总数&#xff0c;计算出替换之后的字符串的总长…

备份数据 宝塔linux_宝塔面板旧版本升级教程汇总—升级宝塔面板

往期教程&#xff1a;宝塔面板教程&#xff08;1&#xff09;基于云服务器搭建宝塔面板教程最全详解宝塔面板教程&#xff08;2&#xff09;宝塔面板添加WordPress站点详细图文教程宝塔面板教程&#xff08;3&#xff09;基于宝塔面板成功配置网站SSL安全证书宝塔面板教程&…

Swift面向对象基础(上)——Swift中的类和结构体(下)

学习来自《极客学院》1 import Foundation2 3 class User {4 var name:String5 var age:Int6 init(name:String,age:Int){7 self.age age8 self.name name9 } 10 } 11 var u1 User(name:"何杨",age:23) 12 var u2 User(name:&qu…

ultraedit26 运行的是试用模式_如何并行运行你的自动化测试?

点击上方蓝色字关注我们~在自动化测试过程中的某些时刻&#xff0c;你将遇到一个共同的问题&#xff0c;那就是&#xff1a;需要花费很长时间去执行大量的UI自动化测试用例。最为有效地加速用例执行的方式就是并行地运行自动化测试。不幸地是&#xff0c;使各个自动化测试用例并…