Matlab绘制函数图像

勇哥接触Matlab日子不短了。以前在工作中主要用它来绘制函数图像。由于使用它在C#中绘制图像普遍反映比较慢,因此几乎没有什么项目中使用了它。现在突然想到它是因为想学习一下矩阵与图形学的基础知识,辅助学习一下这些方面是该软件擅长的,因此在此留下学习的记号。


Matlab最大的优点就是简单,容易操作。首先介绍正玄函数绘制过程。

  确定函数的定义域,这里以(-π,π)为例。

  程序如下:x=[-pi:0.001:pi];该程序语句说明函数定义域,同时每隔0.001取一个x值,并计算该点处的函数值,作为绘图点。0.001称为步长。

  定义函数,程序如下:y=cos(x);

  绘制函数,程序如下:plot(x,y)plot是用来绘制函数的。

  具体代码如图所示。

 x=[-pi:0.001:pi]
 y=cos(y)
 plot(x,y)

绘制出来的图像为:


image.png


在有一篇勇哥写到用圆的方程画圆,公式为x^2+y^2=r^2,利用Matlab的代码如下:

x=[-100:1:100]
y=sqrt(100^2-power(x,2))
plot(x,y)
plot(x,-y)

结果是圆分上下两部分画出,跟C#程序的画法是一样。

注意上的代码中:如果求x^2必须写成power(x,2)。而常量可以直接写成100^2。


image.pngimage.png

如果你要问勇哥怎么画一次画一个完整的圆。

可以参考下面的代码:

一种是直角坐标系下plot(x,y)绘制圆,另外一种是极坐标系下polar(theta,rho)绘制圆。

其中第一种方式我们使用三角函数绘制的圆,而不是使用圆的方程。

function circle2(r)
%close all; clear all; clc
 theta=0:pi/100:2*pi;
x=r*cos(theta); y=r*sin(theta);
rho=r*sin(theta);
figure(1)
plot(x,y,'-')
hold on; axis equal
fill(x,y,'c')
figure(2)
h=polar(theta,rho);
set(h,'LineWidth',2)
%把两个结果绘制在同一张图上
figure(3)
subplot(1,2,1);plot(x,y,'-');hold on; axis square
fill(x,y,'c')
subplot(1,2,2);h=polar(theta,rho);set(h,'LineWidth',2)

结果如下:

image.png


--------------------- 

作者:hackpig

来源:www.skcircle.com

版权声明:本文为博主原创文章,转载请附上博文链接!


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864