matlab关于excel的相关操作
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
>>w = interp2(service,years,wage,15,1975)
插值结果为:
w=
190.6288
命令 3 interp3
功能 三维数据插值(查表)
格式 VI = interp3(X,Y,Z,V,XI,YI,ZI) %找出由参量 X,Y,Z 决定的三元函数 V=V(X,Y,Z)在点(XI,YI,ZI)的值。参量 XI,YI,ZI 是同型阵列或向量。若向量参 量 XI,YI,ZI 是不同长度,不同方向(行或列)的向量,这时输出参量 VI 与 Y1,Y2,Y3 为同型矩阵。其中 Y1,Y2,Y3 为用命令 meshgrid(XI,YI,ZI)生成的同型阵列。若插 值点(XI,YI,ZI)中有位于点(X,Y,Z)之外的点,则相应地返回特殊变量值 NaN。
yi = interp1(x,Y,xi,method,extrapval) %确定超出 x 范围的 xi 中的分量的外插 值 extrapval,其值通常取 NaN 或 0。 例 2-31 >>x = 0:10; y = x.*sin(x); >>xx = 0:.25:10; yy = interp1(x,y,xx); >>plot(x,y,'kd',xx,yy) 插值图形
=====================
在 Matlab 中排序某个向量(一维)时,可以使用 sort(A),其中 A 为待排序的向量,如果仅是用来排序 A,那么直接使用 sort (A)即可,如果排序后还需要保留原来的索引可以用返回值,即[B,ind]=sort(A),计算后,B 是 A 排序后的向量,A 保持不变,ind 是 B 中每一项对应于 A 中项的索引。排序是安升序进行的。
例 2-33: >>[X,Y] = meshgrid(-3:.25:3); >>Z = peaks(X,Y); >>[XI,YI] = meshgrid(-3:.125:3); >>ZZ = interp2(X,Y,Z,XI,YI); >>surfl(X,Y,Z);hold on; >>surfl(XI,YI,ZZ+15) >>axis([-3 3 -3 3 -5 20]);shading flat >>hold off 插值图形为图 2-17。 例 2-34 >>years = 1950:10:1990; >>service = 10:10:30; >>wage = [150.697 199.592 187.625 179.323 195.072 250.287 203.212 179.092 322.767 226.505 153.706 426.730 249.633 120.281 598.243];
三、matlab 将数据保存在 excel 中的操作
%xlswrite('文件存盘位置\文件名字(自己想取的文件名).xls',在matlab工作窗口中的数组) %例如:将数组A存盘到d盘的003文件夹 xlswrite('d:\003.xls',A) 稍微复杂些: bb=[1,2,3,4,5,6]; cc=[7,8,9,10,11,12]; xlswrite('test.xlsx',bb','Sheet2','B1:B6') xlswrite('test.xlsx',cc','Sheet2','C1:C6')
bb=[1,2,3,4,5,6]; cc=[7,8,9,10,11,12]; xlswrite('test.xlsx',bb','Sheet2','B') xlswrite('test.xlsx',cc','Sheet2','C')与上面程序的效果一样
PS:如果每次都要存入不同的文件,需要每次修改程序中要保存的文件名
功能 一维数据插值(表格查找)。该命令对数据点之间计算内插值。它找出一元 函数 f(x)在中间点的数值。其中函数 f(x)由所给数据决定。各个参量之间的关系 示意图为图 2-14。
图 2-14 数据点与插值点关系示意图 格式 yi = interp1(x,Y,xi) %返回插值向量 yi,每一元素对应于参量 xi,同时由 向量 x 与 Y 的内插值决定。参量 x 指定数据 Y 的点。若 Y 为一矩阵,则按 Y 的每列 计算。yi 是阶数为 length(xi)*size(Y,2)的输出矩阵。 yi = interp1(Y,xi) %假定 x=1:N,其中 N 为向量 Y 的长度,或者为矩阵 Y 的行数。 yi = interp1(x,Y,xi,method) %用指定的算法计算插值: ’nearest’:最近邻点插值,直接完成计算; ’linear’:线性插值(缺省方式),直接完成计算; ’spline’:三次样条函数插值。对于该方法,命令 interp1 调用函数 spline、ppval、 mkpp、umkpp。这些命令生成一系列用于分段多项式操作的函数。命令 spline 用它 们执行三次样条函数插值; ’pchip’:分段三次 Hermite 插值。对于该方法,命令 interp1 调用函数 pchip, 用于对向量 x 与 y 执行分段三次内插值。该方法保留单调性与数据的外形; ’cubic’:与’pchip’操作相同; ’v5cubic’:在 MATLAB 5.0 中的三次插值。 对于超出 x 范围的 xi 的分量,使用方法’nearest’、’linear’、’v5cubic’ 的插值算法,相应地将返回 NaN。对其他的方法,interp1 将对超出的分量执行外 插值算法。 yi = interp1(x,Y,xi,method,'extrap') %对于超出 x 范围的 xi 中的分量将执行 特殊的外插值法 extrap。
Matlab 中给一维向量排序是使用 sort 函数:sort(A),排序是按升序进行的,其中 A 为待排序的向量;若欲保留排列前的索引, 则可用 [sA,index] = sort(A) ,排序后,sA 是排序好的向量,index 是 向量 sA 中对 A 的索引。 索引使排列逆运算成为可能。
事实上,这里 A ≡sA(index) , [A 恒等于 sA(index)],这个结论确实很奇妙,而且很有用。不信 你排序之后试下键入命令 sA(index) ,看看得到的是不是就是排列前的 A 呢。
format long g
2003 用 xls,否则无
或
法打开
format long e
还有很多显示的格式,详情参见 format 函数的帮助
(二)也可以用 vpa(A,N),N 为显示的数字位数
第一种无法精确控制小数位数,只能是 5,10 ,15 第二种可以精确控制小数位数,只是速度很慢,不适用大矩阵问题
四、matlab 如何多开几个 M 编辑窗口
窗口右上角有一个箭头,点一下就可以了。
五、matlab 中对矩阵排序的问题
MATLAB 中的排序函数
(2011-01-30 12:51:37)
转载原文 标签: 分类: Matlab
转载 原文地址:MATLAB 中的排序函数作者:beer 看全英文帮助没看懂。sort 函数其实就是个排序函数。 ============================================================ sort(A)若 A 是向量不管是列还是行向量,默认都是对 A 进行升序排列。sort(A)是默认的升序,而 sort(A,'descend')是降序排序。 sort(A)若 A 是矩阵,默认对 A 的各列进行升序排列 sort(A,dim) dim=1 时等效 sort(A)
一、matlab读取excel数据
y=xlsread('0.3C-20to50dischargevoltage.xlsx','sheet1','c2:c20')
二、matlab 读入 excel 小数位数丢失问题
Office2007 必须用
一)如果要在 matlab 命令提示符下显示更多有效位数,xls可x,o以ff执ice行2000 或
插值图形为图 2-16。
图 2-16 离散数据的一维插值图 命令 2 interp2 功能 二维数据内插值(表格查找) 格式 ZI = interp2(X,Y,Z,XI,YI) %返回矩阵 ZI,其元素包含对应于参量 XI 与 YI (可以是向量、或同型矩阵)的元素,即 Zi(i,j)←[Xi(i,j),yi(i,j)]。用户可以 输入行向量和列向量 Xi 与 Yi,此时,输出向量 Zi 与矩阵 meshgrid(xi,yi)是同型 的。同时取决于由输入矩阵 X、Y 与 Z 确定的二维函数 Z=f(X,Y)。参量 X 与 Y 必须 是单调的,且相同的划分格式,就像由命令 meshgrid 生成的一样。若 Xi 与 Yi 中 有在 X 与 Y 范围之外的点,则相应地返回 nan(Not a Number)。 ZI = interp2(Z,XI,YI) %缺省地,X=1:n、Y=1:m,其中[m,n]=size(Z)。再按第一 种情形进行计算。 ZI = interp2(Z,n) %作 n 次递归计算,在 Z 的每两个元素之间插入它们的二维插 值,这样,Z 的阶数将不断增加。interp2(Z)等价于 interp2(z,1)。 ZI = interp2(X,Y,Z,XI,YI,method) %用指定的算法 method 计算二维插值: ’linear’:双线性插值算法(缺省算法); ’nearest’:最临近插值; ’spline’:三次样条插值; ’cubic’:双三次插值。
在 Matlab 中,访问矩阵中的元素,一维用 A(1)访问向量 A 的第一个元素;(下标从 1 开始);二维用 A(1,2)访问 A 中第 一行,第二列的元素。
降序排列不需要这么麻烦,只需要这样就可以了
sort(A,'descend')
七、MATLAB 中的插值、拟合与查表
插值法是实用的数值方法,是函数逼近的重要方法。在生产和科学实验中,自变量 x 与因变量 y 的函数 y = f(x)的关系式有时不能直接写出表达式,而只能得到函数 在若干个点的函数值或导数值。当要求知道观测点之外的函数值时,需要估计函数 值在该点的值。 如何根据观测点的值,构造一个比较简单的函数 y=φ(x),使函数在观测点的值等 于已知的数值或导数值。用简单函数 y=φ(x)在点 x 处的值来估计未知函数 y=f(x) 在 x 点的值。寻找这样的函数φ(x),办法是很多的。φ(x)可以是一个代数多项式, 或是三角多项式,也可以是有理分式;φ(x)可以是任意光滑(任意阶导数连续) 的函数或是分段函数。函数类的不同,自然地有不同的逼近效果。在许多应用中, 通常要用一个解析函数(一、二元函数)来描述观测数据。 根据测量数据的类型: 1.测量值是准确的,没有误差。 2.测量值与真实值有误差。 这时对应地有两种处理观测数据方法: 1.插值或曲线拟合。 2.回归分析(假定数据测量是精确时,一般用插值法,否则用曲线拟合)。 MATLAB 中提供了众多的数据处理命令。有插值命令,有拟合命令,有查表命令。 2.2.1 插值命令 命令 1 interp1
图 2-15 一元函数插值图形 例 2-32 >> year = 1900:10:2010; >> product = [75.995 91.972 105.711 123.203 131.669 150.697 179.323 203.212 226.505 249.633 256.344 267.893 ]; >>p1995 = interp1(year,product,1995) >>x = 1900:1:2010; >>y = interp1(year,product,x,'pchip'); >>plot(year,product,'o',x,y) 插值结果为: 的各行元素升序排列
看下面的例子
>> A=magic(3) A= 816 357 492
>> sort(A) ans = 312 456 897
>> sort(A,1) ans = 312 456 897
>> sort(A,2) ans = 168 357 249
===================