Matlab 用矩阵画图 您所在的位置:网站首页 如何用matlab做矩阵 Matlab 用矩阵画图

Matlab 用矩阵画图

2024-07-14 12:38| 来源: 网络整理| 查看: 265

文章目录 Part.I IntroductionChap.I 预备知识Chap.II 概要Chap.III 杂记 Part.II 用矩阵画图Chap.I 摸索过程Chap.II 绘制专业图Chap.III 矩阵转tiff

Part.I Introduction

本文汇总了 Matlab 用矩阵画图的几种方式。

在这里插入图片描述

Chap.I 预备知识

关于 *.mat 文件

*.mat文件是 matlab 的数据存储的标准格式,它是标准的二进制文件,还可以 ASCII 码形式保存和加载,在 MATLAB 中打开显示类似于单行 EXCEL 表格,加载和存储 mat 文件的语法:

// 加载 mat 文件 load('C:\Users\Lenovo 110\Desktop\Clustering-master\data\toy_clustering.mat') // 保存 mat 矩阵 // 第一个参数是文件路径,后面的参数矩阵名字,类似于load // 当只有第一个参数的时候,会把工作空间所有的矩阵都存在一个文件中 save('C:\Users\Lenovo 110\Desktop\Clustering-master\data\mydata.mat','r2','r3') Chap.II 概要

用矩阵画图主要有如下几种方式:

// 方式 1 -- 常用 imshow(SST); // imshow(SST,[]); // 方式 2 F1=mapminmax(SST); %F1 ∈[-1,1] F1=F1.*0.5+0.5; %F1 ∈[0,1] // 方式 3 -- 常用 imagesc(SST); // 方式 4 contourf(SST,'LineStyle','none'); colormap(jet); colorbar // 方式 5 pcolor(SST); Chap.III 杂记

下面是一些杂记

R = corrcoef(cov1); // 求协方差矩阵的相关系数矩阵 Part.II 用矩阵画图 Chap.I 摸索过程

1.首先加载一个矩阵: 在这里插入图片描述 可以看到,矩阵当中有nan,也有正常数据。为了可以总览全局,我将这些数据放到Excel里面,然后在缩小一下如下图:

在这里插入图片描述 然后对矩阵的特征进行一下介绍:

[a,b]=size(m); num=a*b-numel(find(isnan(a))); %矩阵中除了nan外所有元素的个数 m1=reshape(m,a*b,1); %搞成一个列向量 max1=max(m1); %计算最大值 min1=min(m1); %计算最小值 mean1=nanmean(m1); %计算除nan之外的均值 mode1=mode(m1); %除了nan 返回值最小的那个众数 med1=nanmedian(m1); %求除了nan的中位数 // ----------------------------------------- 217x217 max1=20.21 min1=1.22 med1=7.055

对数据的样子有了一个大概的了解,下面开始尝试画图。

代码图像–在这里插入图片描述imshow(SST);在这里插入图片描述imshow(SST,[]);在这里插入图片描述F1=mapminmax(SST); %F1 ∈[-1,1] F1=F1.*0.5+0.5; %F1 ∈[0,1]% [y,ps] = mapminmax(SST);% ps.ymin = 0;% [y,ps] = mapminmax(SST,ps); %这三行与上面两行异曲同工在这里插入图片描述imagesc(SST);在这里插入图片描述contourf(SST,'LineStyle','none');colormap(jet);colorbar在这里插入图片描述pcolor(SST);在这里插入图片描述A=[0.8 0.1 0.5 0.2 0.4 0.7 0.5 0.3 0.6];imagesc(A);colormap jetcolorbar;在这里插入图片描述A=[0.8 0.1 0.5 0.2 0.4 0.70.5 0.3 0.6];imagesc(A);colorbarcaxis([0 1])[M, N] = size(A);set(gca, 'XTick', 1:M,'XTickLabel', {'0','1','2'})%X坐标轴刻度数据点位置、字符set(gca, 'YTick', 1:N, 'YTickLabel', {'0','1','2'})loc = get(xlabel(''), 'position');text(loc(1), loc(2), loc(3), 'Predicted label', 'HorizontalAlignment','center');set(gca, 'XAxisLocation', 'top')ylabel('True label')title('Confusion matrix')在这里插入图片描述

目前就会这几种,第六个最好用;imshow() 只能显示灰度在 [0,1] 之间的,大于 1 的显示为白色;imagesc() 将图像显示为彩色,没有取值限制;colormap() 可将图像显示为彩色,关于 colormap 可以参看下面的文章:

https://blog.csdn.net/weixin_42943114/article/details/81811556

Chap.II 绘制专业图

下面一起来出一个比较专业的图,所用的数据还是上面那个217x217的矩阵。 代码如下:

X=117:0.0416666666666:126; Y=33:0.0416666666666:42; x0=2*24:2*24:217; % 每隔两度标一下 y0=2*24:2*24:217; x=119:2:126; %标注用的 y=35:2:42; %标注用的 x1=sprintfc('%g',x);%转成字符串数组 y1=sprintfc('%g',y);%转成字符串数组 n=size(x1,2); for i=1:n x1{1,i}=[x1{1,i},'°E']; y1{1,i}=[y1{1,i},'°N']; end figure1 = figure; ax2=axes('Parent',figure1);;%有子图时,ax2=subplot(2,3,2); contourf(SST1,'LineStyle','none') colormap(jet); set(gca,'XTick',x0,'XTicklabel',x1); %设置x,y轴 set(gca,'YTick',y0,'YTicklabel',y1); set(gca,'FontName','Times New Roman'); %更改字体为罗马 xlabel('(a) SST'); set(ax2,'XAxisLocation','top');%把x坐标轴搞到上面去 h=colorbar; set(get(h,'Title'),'string','K'); %给colorbar加上单位

结果: 在这里插入图片描述

Chap.III 矩阵转tiff

用的还是 2 中的那个矩阵

GeoRef = georasterref('Rastersize',size(SST'),'Latlim',[double(min(Lat)),double(max(Lat))],'Lonlim',[double(min(Lon)),double(max(Lon))]); %数据的写出 % data = flipud(SST'); SST_Tif = ['C:\Users\hp\Documents\MATLAB\','A20160922016121_01.tif']; geotiffwrite(SST_Tif,flipud(SST'),GeoRef)

注意图的正反,下图才是正着看的:

在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

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