许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  matlab基础学习5:矩阵运算与脚本编程进阶

matlab基础学习5:矩阵运算与脚本编程进阶

阅读数 4
点赞 0
article_banner

索引

  • Array indexing 冒号表达式 关于plot的几个问题 数据插值


方向键👆和👇是调之前写过的程序;

clc是清除command window面板的内容;

Array indexing

在这里插入图片描述
在这里插入图片描述
第八个数就是9;
在这里插入图片描述
第三行第二列;
在这里插入图片描述
第1,3,5三个数组成的行向量;
在这里插入图片描述
2*2的矩阵;
在这里插入图片描述
第1,3行与第1,3列所交集构成的矩阵;
逗号左边是代表的行,右边代表的列

a(row,column)有逗号时所代表的含义; 没有逗号时数字代表的就是具体的第几个;

冒号表达式

A=1:2:99

   代表起始数是1,等差为2,最后一个数是99所形成的一连串数。

   如:
在这里插入图片描述
在这里插入图片描述

关于plot的几个问题

plot(x,temps)

结果输出的是折线
在这里插入图片描述

plot(x,temps,'+')

结果输出的是 散点图
在这里插入图片描述

plot(x,temps,'+-')

结果输出的是散点图加折线
在这里插入图片描述

数据 插值

给定–批点,估计周围点的情况,所刻画出的曲线或曲面要通过所给的数据点,这就是插值问题。

   1.一维插值

   yi=interp1(x,y,xi,‘method’)


   x必须单调

   插值的四种方法:
linear nearest spline cubic

   下面给出一个 实例

在12h内,每隔1h测量一次温度,温度依次为: 5,8,9, 15, 25, 29, 31, 30, 22, 25, 27, 24,试在每隔0.1h估计–次温度值。

%%
%原始数据
x=1:12;
temps=[5 8 9 15 25 29 31 30 22 25 27 24];
%要插值的点
xi=1:0.1:12;
yi=interp1(x,temps,xi,'spline');  %进行三样条插值
plot(x,temps,'k+',xi,yi,'m',x,temps,'b--')
%将原始点用+散点图表示,绘出插值后的曲线,将原始数据用蓝色虚线相连
xlabel('Hour')
ylabel('Degrees Celsius')

在这里插入图片描述

   另一实例:
在这里插入图片描述

%%
v=20:10:150;
vs=v*(1000/3600);     %转换速度为m/s
d1=10*vs;  %反应距离
d2=[3.15  7.08  12.59  19.68  28.34 38.57  50.4 63.75 ...
    78.71 95.22 113.29  132.93 154.12  176.87];  %刹车距离
d3=10;
d=d1+d2+d3;           %有效视距
vi=20:150;   %插值点
di=interp1(v,d,vi,'spline');    %进行插值
x=abs(di-120);
[y,i]=sort(x);   %将x进行排序,
%i为为排序后y中的元素在原矩阵x中的行位置或列位置的索引
%i(1)即为y的第1个元素(即x中最小的元素)在x中的位置索引
vi(i(1))      
plot(vi,di,vi(i(1)),di(i(1)),'r+')

2. 二维插值

   zi=interp2(x,y,z,xi,yi,‘method’)

   向量x和y是自变量,分量值必须单调递增。x是m维向量,指明所给数据网格点的横坐标;y是n维向量,指明所给数据网格点的纵坐标;

z是m*n阶矩阵,标明相应于所给数据网格点的函数值,xi和yi是给定的网格点的横纵坐标。

   实例:
例2:测得平板表面3X5网格点处的温度分别为:
82 81 80 82 84
79 63 61 65 81
84 84 82 85 86
先做出平板表面温度分布曲线,再在x、y方向上每隔0.2个单位的地方进行插值并画出平板表面温度分布曲面。

%%
x=1:5;
y=1:3;
%当x的元素个数等于temps的列数,
%y向量的元素个数等于temps的行数的时候
%程序不用meshgrid也是可以执行的
temps=[82 81 80 82 84 ;79 63 61 65 81;84 84 82 85 86];
mesh(x,y,temps);
colormap(jet)
title('原始点绘制的图像')

在这里插入图片描述

%%
x=1:5;
y=1:3;
%当x的元素个数等于temps的列数,
%y向量的元素个数等于temps的行数的时候
%程序不用meshgrid也是可以执行的
temps=[82 81 80 82 84 ;79 63 61 65 81;84 84 82 85 86];
mesh(x,y,temps);
colormap(jet)
title('原始点绘制的图像')
%....进行插值
xi=1:0.2:5;
yi=1:0.2:3;
[xl,yl]=meshgrid(xi,yi);
zi=interp2(x,y,temps,xl,yl,'cubic');
mesh(xl,yl,zi);
colormap(hsv)
title('\bf插值之后的温度分布图形')

在这里插入图片描述


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空