MATLAB画温盐剖面图

这篇具有很好参考价值的文章主要介绍了MATLAB画温盐剖面图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述:

 

画好的温盐剖面图如下:

matlab 剖面,matlab,图像处理,笔记,数据分析

 matlab 剖面,matlab,图像处理,笔记,数据分析

绘制剖面图的难点在于画图时需要将纵轴翻转180°

matlab 剖面,matlab,图像处理,笔记,数据分析


完整代码 :

clc;close all;clear all
%%数据读取
filename = 'D:\MATLAB_DATA\DATA\nc_T_S_profile\gtspp_49748043_b3_101.nc'
ncdisp(filename)
T = ncread(filename,'temperature');
S = ncread(filename,'salinity');
depth = ncread(filename,'z');
lon = ncread(filename,'longitude');
lat = ncread(filename,'latitude');
%%画温度—深度剖面图
figure(1);
set(0,'defaultfigurecolor','w');
T = T(:);
plot(T,depth,'r','LineWidth',2);
axis([0 18 0 2000])
grid on;
set(gca,'xaxislocation','top','YDir','reverse','gridlinestyle','--','gridalph',0.8);
set(gca,'XTick',[0:1:18],'YTick',[0:200:2000]);
xlabel('Temperature(℃)');
ylabel('Depth(m)');
text(10,150,'Thermocline','fontsize',18);
title('Temperature-Depth profile','position',[9, 2150],'fontsize',20);
%%画温跃层图
figure(2);
set(0,'defaultfigurecolor','w');
T = T(:);
plot(T(find(depth <= 200)),depth(find(depth <= 200)),'r','LineWidth',2);
grid on;
axis([0 18 0 200]);
set(gca,'xaxislocation','top','YDir','reverse','fontsize',14,'gridlinestyle','--','gridalph',0.8);
set(gca,'XTick',[0:1:18],'YTick',[0:20:200]);
xlabel('Temperature(℃)');
ylabel('Depth(m)');
text(8,70,'Thermocline','fontsize',18);
%%画盐度—深度剖面图
figure(3);
set(0,'defaultfigurecolor','w');
S = S(:);
plot(S,depth,'r','LineWidth',2);
grid on;
axis([34 35 0 2000]);
set(gca,'xaxislocation','top','YDir','reverse','fontsize',14,'gridlinestyle','--','gridalph',0.8);
set(gca,'XTick',[34:0.05:35],'YTick',[0:200:2000]);
xlabel('Salinity(unitless)');
ylabel('Depth(m)');
title('Salinity-Depth profile','position',[34.5, 2150],'fontsize',20);




 剖面绘制:

以绘制温度剖面图为例,读取完.nc文件中的数据后,发现温度为三维矩阵,超出了plot()函数的规定维度。

matlab 剖面,matlab,图像处理,笔记,数据分析

因此使用T = T(:)将三维矩阵,降维成二维矩阵。

matlab 剖面,matlab,图像处理,笔记,数据分析

 以温度为横坐标,深度为纵坐标绘制曲线;设置曲线颜色为红色,线宽为2

plot(T,depth,'r','LineWidth',2);

matlab 剖面,matlab,图像处理,笔记,数据分析

调整x轴的上下限,使剖面曲线位于中部

axis([0 18 0 2000])

 matlab 剖面,matlab,图像处理,笔记,数据分析

打开网格,把x轴移动到上部,把y轴翻转,设置x、y轴的刻度,设置网格的样式

grid on;
set(gca,'xaxislocation','top','YDir','reverse');
set(gca,'XTick',[0:1:18],'YTick',[0:200:2000],'gridlinestyle','--','gridalph',0.8);

 matlab 剖面,matlab,图像处理,笔记,数据分析

此时剖面曲线已经颇具雏形了,还缺少标注和图题

xlabel('Temperature(℃)');
ylabel('Depth(m)');
title('Temperature-Depth profile','position',[9, 2150],'fontsize',20);

 matlab 剖面,matlab,图像处理,笔记,数据分析

最后,通过观察剖面曲线,可以很明显地看到存在一个温跃层,因此想将其标注出来。注意,标注文字的位置是按x、y轴坐标控制的。例如下面代码的10,150表示插入文字的位置在x轴数值‘10’处、y轴数值‘150’处。 

text(10,150,'Thermocline','fontsize',18);

 matlab 剖面,matlab,图像处理,笔记,数据分析文章来源地址https://www.toymoban.com/news/detail-742926.html

到了这里,关于MATLAB画温盐剖面图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • matlab图像处理

    1.图片的读取(下左)   2.转为灰度图像(上右) 查看是否是灰度图像的一个方法: disp(\\\'输出字符串\\\')%输出字符串; ndims()%输出矩阵维度,这里灰度图像或二值图像矩阵维度都为2,彩色图像为3。所以无法判断是灰度图像还是二值图像。之前matlab有函数isgray(),现在被移除

    2024年02月03日
    浏览(44)
  • 【MATLAB】图像处理

    Matlab数字图像处理——图像的空间变换 边缘与锐化滤波(MATLAB)

    2024年02月16日
    浏览(32)
  • MATLAB图像处理入门

    imread与imshow函数 结果: 如果我们想显示图像坐标轴的话只需在imshow后加上下面这行代码:  我们还可以用whos命令查看图像的信息: 在命令行窗口输入whos I查看上面那种图片的信息: 显示图像的直方图用hist函数,将直方图均衡化用histeq函数 我们在上述代码基础上继续输入下

    2024年02月07日
    浏览(44)
  • MATLAB算法实战应用案例精讲-【图像处理】缺陷检测(附python和matlab实现代码)

    目录 前言 算法原理 什么是缺陷检测 缺陷检测任务 缺陷检测的关键问题

    2023年04月17日
    浏览(51)
  • 数字图像处理-matlab图像内插

    目标各像素点的灰度值代替源图像中与其最邻近像素的灰度值 参考博客 假设一个2X2像素的图片采用最近邻插值法需要放大到4X4像素的图片,右边该为多少? 最近邻插值法坐标变换计算公式: s r c X = d s t X ∗ ( s r c W i d t h / d s t W i d t h ) srcX=dstX*(srcWidth/dstWidth) src X = d s tX ∗

    2024年02月03日
    浏览(61)
  • Matlab图像处理-加法运算

    加法运算 图像加法运算的一个应用是将一幅图像的内容叠加到另一幅图像上,生成叠加图像效果,或给图像中每个像素叠加常数改变图像的亮度。 在 MATLAB 图像处理工具箱中提供的 函数 imadd () 可实现两幅图像的相加或者一幅图像和常量的相加 。 程序代码 效果图像 代码对图

    2024年02月11日
    浏览(43)
  • Matlab图像处理-均值滤波

    均值滤波 均值滤波所使用的运算是卷积。均值滤波用邻域内像素的平均值来代替中心像素的值,相当于低通滤波,有将图像模糊化的趋势,对椒盐噪声基本无能为力。 在 MATLAB 中,可使用 imfilter 函数 来实现线性空间滤波,该函数的语法如下 : J = imfilter ( I,w,filtering_mode,bound

    2024年02月06日
    浏览(45)
  • Matlab图像处理-模式识别

    模式识别 模式识别就是用计算的方法根据样本的特征将样本划分到一定的类别中去。模式识别就是通过计算机用数学技术方法来研究模式的自动处理和判读,把环境与客体统称为“模式”。模式识别以图像处理与计算机视觉、语音语言信息处理、脑网络组、类脑智能等为主要

    2024年02月07日
    浏览(52)
  • Matlab图像处理-垂直镜像

    垂直镜像 图像的垂直镜像操作是以原图像的水平中轴线为中心,将图像分为上下两部分进行对称变换。 设原始图像的宽为 w ,高为 h ,原始图像中的点为 ( 𝑥 0 , 𝑦 0 ) (x _ 0,y _ 0) ,对称变换后的点为 ( 𝑥 1 , 𝑦 1 ) (x _ 1,y _ 1) 。 示例程序 效果图像  

    2024年02月10日
    浏览(31)
  • Matlab图像处理-水平镜像

    镜像变换 镜像变换又常称为对称变换,它可以分为水平对称、垂直对称等多种变换。对称变换后,图像的宽和高不变。 图像的镜像分为两种 垂直镜像 和 水平镜像 。 水平镜像 即将图像左半部分和右半部分以图像竖直中轴线为中心轴进行对换; 竖直镜像 则是将图像上半部分

    2024年02月11日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包