zoukankan      html  css  js  c++  java
  • matlab三维画图学习 三次插值

    一些语句

    size(a,x);

    xis=size(xi,2);  %获取矩阵xi的列数
    xis=size(xi,1);  %获取矩阵xi的行数

    round函数 四舍五入,在绘制三维图形时如果数据比较大,可以通过以下方法把数据按应有比例减小  (我自己理解的,有错请指正)

    x=round(x'./100+1);  %这部分使数据减小,便于作图处理等
    y=round(y'./100+1);

    matlab中提供的插值函数 griddata ,其基本格式为 cz=griddata(x,y,z,cx,cy,'method');

    其中,参数method有以下四个可以选择:

    ‘nearest’ :最邻近点插值

    ‘linear’ :线性插值

    ‘cubic’: 三次插值

    ‘V4’:matlab中所提供的的插值方法

    基本格式中 x,y,z均是n为向量,代表数据点的坐标,向量cx cy是给定的网格点的横坐标和纵坐标,cz是矩阵,其行数和列数分别等于 cx 和 cy 的维数。(所以前面有提到round函数的用处,不然cz矩阵可能会特别特别大)

    %手写一下代码
    clear
    clc
    
    %读入数据
    load textx.txt
    load texty.txt
    load textz.txt
    
    %数据进行处理
    textx=round(textx'./100+1);
    texty=round(texty'./100+1);
    textz=textz';
    
    zi=zeros(max_x,max_y); %这里max_x max_y我理解的是textx texty中最大的值(初学者)
    for i=1:len
         zi(x(i),y(i))=z(i);
    end
    
    xi=0:step:lx; %step为步长  lx为自己设定的x轴长度,要大于等于max_x ,ly同理
    yi=0:step:ly
    zi=griddata(x,y,z,xi,yi,'V4');%绘制三维曲面图
    subplot(1,2,1);
    mesh(xi,yi,zi); %绘制地形图
    
    %这是最基本的结构,其他内容可以在此基础上添加

    输出

  • 相关阅读:
    centos7下查看端口是否被占用
    centos7通过yum安装redis
    centos7下mysql远程连接
    centos7通过yum安装JDK1.8
    Jwt系列2:使用
    Jwt系列1:简介
    Python基础语法
    排序
    利用MultipartFile来进行文件上传
    服务器端跳转和客户端跳转
  • 原文地址:https://www.cnblogs.com/yz-lucky77/p/11305119.html
Copyright © 2011-2022 走看看