1.画直角坐标系的二维图

画直线:

x1=[1 2 3];
y1=[4 5 6];
plot(x1,y1);%斜率为1的直线,穿过(1,4)(2,5)(3,6)

画抛物线y=x*x(-3<=x<=3):

x2=-3:0.1:3;%每隔0.1就有一个点
y2=x2.*x2; %x2.^2
plot(x2,y2,'green-o');%关键点有一个圈表示
plot(x2,y2,'red-.');%虚线
axis equal %设置横坐标和纵坐标长度相同

plot函数是从左到右把点连起来,点越多,越光滑,看起来就像曲线了。

2.画直方统计图(bar图)

%直方统计图,bar图
y3=[ 12 23 42 15 10 135 16 17 ];
bar(y3);%横坐标默认从1开始,每次间隔1
x3=2001:1:2008
bar(x3,y3);%横坐标自己定义

3.三维图形

%三维图像plot3:画一个圆绕z轴螺旋上升
t=0:pi/50:6*pi %t为三角函数角度,pi是圆周率
x4=cos(t);
y4=sin(t);
plot(x4,y4);%底面的圆
z=0:1:300;%301个点,和x4y4对应
plot3(x4,y4,z);%画出三维图

4.各种标识功能

每次使用plot函数都会覆盖之前的图像,想要保留之前的图像,在上一次plot函数后用语句“hold on;”。

加背景网格:grid on;

加标题:title('标题内容');

横纵坐标加标签:xlabel('横坐标标签');ylabel('纵坐标标签');

x1=[1 2 3];
y1=[4 5 6];
plot(x1,y1);%斜率为1的直线,穿过(0,3)
hold on;%保留
x2=-3:0.1:3;
y2=x2.*x2; %x2.^2
plot(x2,y2,'green-o');%关键点有一个圈表示
axis equal %横坐标和纵坐标长度相同 grid on;
title('两个图');
xlabel('x坐标');
ylabel('y坐标');

5.划分功能(把窗口分割画多个图)

subplot(行,列,第几个);%第几个是从左往右数,换行

x=-4:0.1:4
y1=sin(x);
y2=sin(2.*x);
y3=sin(3.*x);
y4=sin(4.*x); subplot(2,2,1);
plot(x,y1);
title('y=sin x'); subplot(2,2,2);
plot(x,y2);
title('y=sin 2x'); subplot(2,2,3);
plot(x,y3);
title('y=sin 3x'); subplot(2,2,4);
plot(x,y4);
title('y=sin 4x');

x=-4:0.1:4
y1=cos(x);
y2=cos(2.*x);
y3=cos(3.*x); subplot(2,2,1);
plot(x,y1);
title('y=cos x'); subplot(2,2,2);
plot(x,y2);
title('y=cos 2x'); subplot(2,2,[3,4]);%合并
plot(x,y3);
title('y=cos 3x');

6.画曲面

例如:z=x^2 + y^2

第一步,确定x和y的范围

x=-3:1:3;

y=-3:1:3;

第二步,确定z范围

z=x.^2 + y.^2;

可以看到

x = -3 -2 -1 0 1 2 3

y = -3 -2 -1 0 1 2 3

z = 18 8 2 0 2 8 18

显然7个点怎么可能形成一个曲面?脑补一下这7个点形成一条曲线,投影在平面上是y=x(-3<=x<=3)这条直线。

第三步,想办法找出其他关键点

[X,Y]=meshgrid(x,y);

Z=X.^2 + Y.^2;

可以看到

X =

-3 -2 -1 0 1 2 3
-3 -2 -1 0 1 2 3
-3 -2 -1 0 1 2 3
-3 -2 -1 0 1 2 3
-3 -2 -1 0 1 2 3
-3 -2 -1 0 1 2 3
-3 -2 -1 0 1 2 3

Y =

-3 -3 -3 -3 -3 -3 -3
-2 -2 -2 -2 -2 -2 -2
-1 -1 -1 -1 -1 -1 -1
0 0 0 0 0 0 0
1 1 1 1 1 1 1
2 2 2 2 2 2 2
3 3 3 3 3 3 3

(meshgrid通过一维数组生成二维矩阵,其中矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制)

第四步,用surf函数生成曲面

surf(X,Y,Z);

matlab基础向7-8:画图的更多相关文章

  1. matlab基础教程——根据Andrew Ng的machine learning整理

    matlab基础教程--根据Andrew Ng的machine learning整理 基本运算 算数运算 逻辑运算 格式化输出 小数位全局修改 向量和矩阵运算 矩阵操作 申明一个矩阵或向量 快速建立一 ...

  2. Matlab基础

    基本运算: 一,矩阵的生成 clc ; clear all; close all; 1.直接输入 A = [ 1 ,2 ,3,4;2,3,4,5;3,4,5,6] A = 1 2 3 4 2 3 4 ...

  3. Matlab - 基础知识

    Matlab R2016a完全自学一本通 记在前面: (1)函数中:dim=1 按列:dim=2 按行 (2)这本书很垃圾,不建议买. (3)在数据库连接中,用两个单引号表示字符串,千万不能用双引号 ...

  4. 数字图像处理学习笔记之一 DIP绪论与MATLAB基础

    写在前面的话 数字图像处理系列的学习笔记是作者结合上海大学计算机学院<数字图像处理>课程的学习所做的笔记,使用参考书籍为<冈萨雷斯数字图像处理(第二版)(MATLAB版)>,同 ...

  5. Matlab基础之单元数组和结构数组

    Matlab基础之单元数组和结构数组 前言: 单元数组和结构数组是一种新的数据类型,能将不同类型.不同维数的数组组合在一起,从而方便对不同的数据类型方便管理和维护. 如上图所示的2*2矩阵中,分别存储 ...

  6. Matlab--从入门到精通(chapter2 matlab 基础知识)

    Chapter2 Matlab 基础知识 1.基本数学运算符号 注:矩阵的右除是一般意义的除法,但是左除具有对称意义,即A./B=B.\A 2. 命令行中的常用标点 3.常见的操作命令 4.输出数据显 ...

  7. Matlab高级教程_第一篇:Matlab基础知识提炼_02

    第三节:变量 正如其他编程软件一样. 都是通过变量来传递和交换数据的,这是基础.按照<MATLAB基础知识提炼>这篇文章先介绍变量比较合适.编程语言不外乎包括两部分:数据和结构.应该先把数 ...

  8. Matlab高级教程_第一篇:Matlab基础知识提炼_01

    第一篇:Matlab基础知识提炼: 这一篇主要用系统和提炼性的语言对Matlab基础知识进行总结,主要适用于有语言基础的学习者.尽量不讲废话. 第一部分:Matlab是什么? 1 Matlab是Mat ...

  9. 信号与系统实验序章0——MATLAB基础命令入门

    本次开启新的系列,关于用Matlab实现常见信号和函数的生成和变换. 同时如果没有MATLAB基础,那么可以跟着本文一步一步学习Matlab的相关操作,本文旨在记录在信号与系统课程中MATLAB的学习 ...

随机推荐

  1. CentOS7-部署测试Apollo

    linux部署apollo环境要求:jdk1.8.mysql5.7 centos7安装jdk1.8跟mysql5.7可以参考我这两篇文章 https://www.cnblogs.com/reasonz ...

  2. [转帖]Java Netty简介

    Java Netty简介 https://www.cnblogs.com/ghj1976/p/3779820.html Posted on 2014-06-10 13:41 蝈蝈俊 阅读(2992) ...

  3. Sitecore客户体验成熟度模型之旅

    “成熟”这个词带来了很多想法:你在青年时不愿意找到工作?你四岁的孩子偶尔发脾气?可能还有你的公司能否在数字化时代提供个性化的客户体验? 你如何定义CX成熟度?如果您的CX战略仍处于开发阶段,您需要达到 ...

  4. cocos2d设置窗口标题

    //窗口标题 #ifdef WIN32 CCEGLView* pGlView=CCDirector::sharedDirector()->getOpenGLView(); if (pGlView ...

  5. nginx location指令详解

    Nginx的HTTP配置主要包括三个区块,结构如下: http { //这个是协议级别 include mime.types; default_type application/octet-strea ...

  6. golang学习笔记--接口

    go 的接口类型用于定义一组行为,其中每个行为都由一个方法声明表示. 接口类型中的方法声明只有方法签名而没有方法实体,而方法签名包括且仅包括方法的名称.参数列表和结果列表. 只要一种数据类型的方法集合 ...

  7. centos下 yum快速安装maven

    wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos ...

  8. Bootstrap-treeView 实际操作总结

    由于功能性需求:需要展示一个树状结构的导航界面 1.进行资源引用 <!-- Required Stylesheets --> <link href="bootstrap.c ...

  9. 《C++ Primer》学习总结;兼论如何使用'书'这种帮助性资料

    6.25~ 6.27,用了3天翻了一遍<C++ Primer>. ▶书的 固有坏处 一句话: 代码比 文字描述 好看多了.————> 直接看习题部分/ 看demo就行了 看文字在描述 ...

  10. IDEA控制台中文乱码问题

    Tomcat启动时乱码 在tomcat启动时,控制台中的中文为乱码 在idea安装路径的bin文件夹下,找到idea64.exe.vmoptions这个配置文件,添加如下代码 -Dfile.encod ...