MATLAB笔记(自用)

文章介绍了MATLAB中设置对数坐标轴、指定坐标轴刻度、改变曲线颜色和线形的方法,以及sort函数的使用。此外,讲解了如何用scatter、pcolor和contourf绘制二维函数图像,包括离散数据和均匀分布数据的处理。还提到了eval函数执行字符串命令的功能以及矩阵排序的操作。
摘要由CSDN通过智能技术生成

1、设置对数坐标系

set(gca,'XScale','log')%设置X轴为对数坐标轴

2、指定坐标轴刻度

yticks([a b c d])

3、同时设置曲线颜色和线形

plot(x,y,'--r')
%%注意,下面的写法是错误的
plot(x,y,'--','r')

4、matlab里sort函数

[m,n] = sort(a)
%m返回a从小到大排序后的结果
%n返回m中的各个值对应的序号(在a中的序号)。

5、matlab里生成随机序列

n = randperm(N)
%n返回从1-N之间的数字随机排列的一个结果,常用来生成初始解

6、MATLAB figure 右边框及上边框刻度设置

box on

7、绘制二维函数图像
(1)仅有离散数据,以 z = f ( x , y ) z=f(x,y) z=f(x,y)举例,我们现有 1 × 2000 1\times 2000 1×2000的列向量x和y,以及z。现在相要绘制这个函数的二维图像。

scatter(x,y,20,z,'filled')%20是为了保证每个离散点的大小一致

具体图像如下所示,可以看出这些点的坐标并不是均匀排列的,因此很难绘制成连续的云图,当然也不是不可以,因为非结构网格似乎也是这样,但是绘制云图的方法我目前还没有找到。
在这里插入图片描述
(2)仅有输出数据,且已知输出参数(x,y)这些是均匀排布的,且每个数据占的格子是相同大小。并且已知计算域的排列nx*ny的大小
这时我们可以直接利用pcolor()或者contourf()函数来进行操作。
eg:假设我们现有数据VORTavg: 89351 × 1 89351\times 1 89351×1,已知nx = 199,ny = 451
绘制VORT的二维云图。

pcolor(reshape(VORTavg,nx,ny))
shading interp%消除格线

在这里插入图片描述
(2)我们还可以用contourf()来实现

contourf(reshape(VORTavg,nx,ny), 100, 'LineColor', 'none');%消除等值线

效果是一样的,这里就不放图了。
在这里插入图片描述
加上格子我们可以看到,每个格子的大小是一致的,这是我们事先知道的结果。

补充:这里突然想到非结构网格和第一种情况还不太一样,非结构网格虽然每个格子的大小都不是一致的,但是我们可以通过其临点信息得到每个格子的形状;但是对于第一种情况,我们只有格子的坐标,不知到每个格子的区域,且其分布又不是均匀的,所以只能以散点图的形式绘制函数图像,好像没有其它方法。

(3)假如说针对第一种情况,我们已知每个点是均匀分布的,这样就可以假设每个点占据相同大小的格子,然后用函数值对应的颜色填充每个格子,从而绘制出云图,其与第一种情况下的不同可以通过下图看出
在这里插入图片描述
这里有许多方法。
一、surf()函数

x = linspace(-2,2,20);
y = x';
z = x .* exp(-x.^2 - y.^2);%这里x,y是向量;z是矩阵
surf(x,y,z)

结果如下:
在这里插入图片描述
二、contourf()函数

x = linspace(-2,2,20);
y = x';
z = x .* exp(-x.^2 - y.^2);
[X,Y] = meshgrid(x,y);
% surf(x,y,z)
contourf(X,Y,z)%这里X,Y,z都是矩阵

其绘制结果如下:
在这里插入图片描述
未完待续,讲到这里,最后应该补充一个非结构网格绘图的算例,但是目前手头上没有这样的算例,以后再补充吧。

8、eval()函数
eval()函数可以将字符串以命令的方式进行执行
eg:

eval('clc')%该段命令等同于clc

9、对矩阵排序

[Z_new,index]=sort(Z_1D);
Y_new = Y_1D(index);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值