在Matlab中用二维数组画云图

自己在网上搜了半天,也没找到用Matlab绘制云图的方法,于是就自己动手瞎琢磨了下,居然弄出来了。

云图需要的数据一般都是这样的格式:第一列x坐标、第二列y坐标、第三列u、第四列v。。。一次类推

本例中就以x坐标、y坐标、第三列为u来说明。

绘制的效果如下:

在Matlab中用二维数组画云图_第1张图片

实现的代码如下,如有错误还望大家指正:

%利用griddata函数绘制应力云图类型的图
%取z=log(xy)
clear all
close all
clc

rx=randi([1 1000]);
ry=randi([500 1500]);
x=linspace(-rx,rx,50);%生成[-rx,rx]区间上的50个点
y=linspace(-ry,ry,50);%生成[-ry,ry]区间上的50个点
z=log(x.*y);%计算z

xm=linspace(min(x),max(x),200);%用于griddata
ym=linspace(min(y),max(y),200);%用于griddata

[X,Y,Z]=griddata(x,y,z,xm',ym,'v4');%注意那个xm必须要转置,不然会出错
contourf(X,Y,Z,200);%绘制云图
shading flat%保持光滑效果


你可能感兴趣的:(二维数组,matlab,应力云图)