(二)MATLAB绘图-基础操作

目录

前言

一、操作部分

(一)数据载入及保存

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

(三)字符串拼接

(四)数值取整

(五)保留指定位小数

(六)特殊分布数组定义

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

(八)矩阵维数判断

(九)点注释

二、使用步骤

(一)散点图绘制

(二)中心点及圆圈绘制

总结


前言

        本篇博客针对一些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程序编写中常用的几个操作,并介绍了散点图、中心点及圆圈图的绘制方法。合理利用各种函数可以极大提升我们的编程效率,便捷的绘图技巧可以更好地展示文章内容,希望今天的分享能给大家带来帮助。

  • 38
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Matlab中,进行绘图的基本操作包括使用plot函数和plotyy函数。plot函数用于绘制一维曲线图,而plotyy函数用于绘制双Y轴曲线图。 使用plot函数时,可以通过指定横轴和纵轴的数据绘制曲线。例如,通过定义横轴数据x和纵轴数据y,执行plot(x, y)即可绘制曲线。 而使用plotyy函数时,可以在一个图形窗口中绘制具有不同纵轴的两条曲线。该函数的语法为plotyy(x1, y1, x2, y2, 'function1', 'function2')。其中,x1和y1是第一条曲线的横轴和纵轴数据,x2和y2是第条曲线的横轴和纵轴数据。'function1'和'function2'是绘制曲线所使用的函数类型,例如plot、semilogx、loglog等。 举例来说,如果要在一个图形窗口中绘制双Y轴曲线,可以先定义横轴数据x和纵轴数据y,然后执行plotyy(x, y, x, y, 'plot', 'stem')。这样,就可以同时绘制出一条plot类型的曲线和一条stem类型的曲线。 综上所述,Matlab中的绘图基本操作包括使用plot函数绘制一维曲线图和使用plotyy函数绘制双Y轴曲线图。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [plot用法](https://blog.csdn.net/afgh2587849/article/details/6013719)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Matlab 数组与矩阵操作指南](https://download.csdn.net/download/weixin_41784475/88226798)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [全面总结:matlab怎么做漂亮的图](https://blog.csdn.net/ccxcau/article/details/7362764)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值