(二)MATLAB绘图 您所在的位置:网站首页 matlab元组操作 (二)MATLAB绘图

(二)MATLAB绘图

2024-07-12 04:26| 来源: 网络整理| 查看: 265

目录

前言

一、操作部分

(一)数据载入及保存

(二)元组及数值矩阵定义

(三)字符串拼接

(四)数值取整

(五)保留指定位小数

(六)特殊分布数组定义

(七)坐标轴刻度名称改写

(八)矩阵维数判断

(九)点注释

二、使用步骤

(一)散点图绘制

(二)中心点及圆圈绘制

总结

前言

        本篇博客针对一些matlab常用基础操作和两种图形的绘制技巧进行了简单介绍。操作内容包括数据载入及保存、元组及数值矩阵定义、字符串拼接、数值取整、保留指定位小数、正态、均匀及指定分布数组定义、坐标轴刻度名称改写、矩阵维数判断、点注释;绘图内容包括散点图绘制、中心点及圆圈绘制。希望博客内容能帮助到各位读者,有问题的读者可以私信咨询我。

一、操作部分 (一)数据载入及保存

        matlab程序编写以及实际操作过程中,会用到数据的保存以及载入;常用的函数为“load()”函数和“save()”函数。其中“save()”函数还涉及单个数据或者多个数据的保存。

        代码如下:

%将数据保存到data文件夹里面的d.mat文件中,d.mat中包含了'X','Y'两个变量 save('data/d.mat','X','Y'); %加载data文件夹里的d.mat文件 load("data/d.mat"); (二)元组及数值矩阵定义

        元组是matlab中常用的数据类型之一,由多个元胞组成。其元胞中可存储文本,数值,矩阵等等不同的数据类型,应用较为方便。在此对元组的创建、读取、写入进行简要介绍。元组的创建用到的是“cell()”函数,同时还可以对元胞的类型进行定义;元组中的数据读取分为两种,一种是以元胞形式进行读取,一种是以数据类型进行读取,通常是数值矩阵形式。

        代码如下:

%1*2维空元组定义 z = cell(1,2); %定义一个1*2维元组,每个元胞为2*2的空数值矩阵 z = cell(1,2); z(:) = {zeros(2,2)}; %读取数组中的元胞 zz = z(1); %以数组中元胞的数据类型进行读取,如果元胞类型为数值矩阵,则读取出来的为数值矩阵 zz = z{1}; %定义一个元组,每个元胞由多个矩阵构成 X = cell(1,N2); %定义混合中间值,不同目标对应三个模型的值 X(:) = {cell(1,3)}; for i = 1:N2 X{i}(:) = {zeros(nx,n_end),zeros(nx,n_end),zeros(nx,n_end)}; end

        数值矩阵是matlab中最常用到的数据类型。此部分对常用的定义,读取,写入操作进行介绍,最常用的定义函数为“zeros()”函数和“ones()”函数,分别为全0和全1矩阵的定义;读取是根据索引直接对数组进行切片读取;写入是对指定索引部分的数值进行赋值替换。

        代码如下:

%定义一个6*6的全0数值矩阵 z = zeros(6,6); %定义一个6*6的全1数值矩阵 z = ones(6,6); %读取第一行第一列的值 zz = z(1,1); %读取第一行的值 zz = z(1,:); %读取第一列的值 zz = z(:,1); %读取第一行的第3列到最后一列的值 zz = z(1,3:end); %数值矩阵赋值 zz(2:3,4:5) = [1,2;3,4]; (三)字符串拼接

        对于程序中的某些数值,通常需要将其转化为字符串进行输出,有时还需要将字符串进行拼接。对应的函数为“num2str()”函数,可以将变量转化为字符串;“strcat()”函数,可以将字符串进行连接。

        代码如下:

%将变量转换为字符串 i = 15; cc = num2str(i); %连接字符串,sca表示“节点:15” sca = strcat('节点', ':',cc); (四)数值取整

        数值取整操作是对小数进行取整操作,主要由取整函数“round()”、“fix()”、“floor()”和“ceil()”函数实现。不同函数进行数值取整的操作不同,具体含义如下表。

函数含义round(a)向最接近的整数取整,小数部分为0.5时向绝对值大的方向取整fix(a)向0方向取整floor(a)向不大于a的最接近整数取整ceil(a)向不小于a的最接近整数取整 (五)保留指定位小数

        要想将变量保留指定位数的小数,需要用到“round()”函数或“roundn()”函数进行四舍五入操作。

        代码如下:

%将变量按照四舍五入的原则保留三位小数 a = 3.1415926; b = round(a,3) %将变量按照四舍五入的原则保留三位小数 a = 3.1415926; b = roundn(a,-3) (六)特殊分布数组定义

        在此介绍正态分布、均匀分布、指定概率分布的随机数组产生方法;分别用到的函数为“normrnd()”函数、“unifrnd()”函数和“randsrc()” 函数。随机数组可以指定数组的大小以及分布的参数等。

        代码如下:

%定义一个1*1000的正态分布随机数组 a = 2;%正态分布均值 theat = 1;%正态分布方差 z = normrnd(a,theat,1,1000); %定义一个1*1000的均匀分布随机数组 lb = 1;%均匀分布下界 up = 2;%均匀分布上界 z = unifrnd(lb,up,1,1000); %定义一个1*1000的指定分布随机数组 a = [0, 1 , 2];%指定分布参数 pp = [0.2, 0.2, 0.6];%指定分布参数取值概率 z = randsrc(1,1000,[a;pp]); (七)坐标轴刻度名称改写

        通过定义x轴对应数值的标签,可以将坐标轴刻度的名称进行对应的修改。用到的函数为“set()”函数。例如定义一个坐标轴,将原刻度10、20、30处定义为a、b、c,具体示例如下

        代码如下:

set(gca,'XTick', [ 10 20 30],'XTickLabel', {'a' 'b' 'c'}); (八)矩阵维数判断

        通过函数“size()”可以判读数据的大小,便于之后循环操作。例如判断一个数组的行数和列数大小。

        代码如下:

%判断数组A的行数以及列数 A = [1,2;4,6]; [M,N] = size(A); (九)点注释

        通过函数“text()”可以对指定位置点进行注释。例如对点[0,0]进行注释,字体为宋体,字号为12。

        代码如下:

text (0,0,'原点','FontName','宋体','Fontsize',12); 二、使用步骤 (一)散点图绘制

        散点图绘制的时候主要用到的函数为“scatter()”函数,函数具有一系列的属性,可以进行点的大小、形状、点颜色修改、点填充等操作。

        例如绘制一个圆点图,大小为30,点的外部线条为黑色,内部填充为红色。代码如下:

a = 2;%正态分布均值 theat = 1;%正态分布方差 z = normrnd(a,theat,1,1000); scatter(1:1000,z,30,"filled",'o','MarkerEdgeColor',[0 0 0],'MarkerFaceColor',[1 0 0]);

(二)中心点及圆圈绘制

        在实际科研工作中,部分人会需要绘制中心节点以及覆盖范围的图像。可以通过“scatter()”函数和“plot()”函数来实现,例如绘制四个节点的图形,需要对中心节点进行注释,并用黑色虚线对各节点的覆盖范围进行表示。

        代码如下:

N1 = 4 ; %节点数量 r = [400, 400, 400, 400 ,400]; %节点的覆盖范围 r_location = [250 250; 250 -250 ; -250,250; -250,-250];%节点位置 for i = 1:N1 scatter(r_location(i,1),r_location(i,2),120,'rp');%绘制中心点 sca_mid = strcat('节点', ' ',num2str(i));%中心点字符串拼接 text (r_location(i,1)+40,r_location(i,2),sca_mid,'FontName','Times New Roman');%标记节点 hold on;%继续绘图 theta = 0:pi/20:2*pi; %角度[0,2*pi] x = r_location(i,1)+r(i)*cos(theta); y = r_location(i,2)+r(i)*sin(theta); plot(x,y,'k--');%绘制圆圈 hold on;%继续绘图 end axis equal;%使横纵坐标刻度相同

总结

        以上就是今天要讲的内容,本文简单介绍了几种matlab程序编写中常用的几个操作,并介绍了散点图、中心点及圆圈图的绘制方法。合理利用各种函数可以极大提升我们的编程效率,便捷的绘图技巧可以更好地展示文章内容,希望今天的分享能给大家带来帮助。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有