博文

matlab的几个插值函数(2007-08-28 12:17:00)

摘要:已知向量x,y,通过x,y求出向量xi的插值的值
1、分段线性插值
yi=interp1(x,y,xi)或
yi=interp1(x,y,'linear')
2、多项式插值
多项式为y=p(1)*x+p(2)*x^2+...+p(n)*x^n,则可以用
p=polyfit(x,y,n),(n是多项式的最高次数)求出系数向量p,
然后用y=polyval(p,xi)求出向量xi的函数值y
3、三次样条插值
yi=interp1(x,y,xi,'spline')
或yi=spline(x,y,xi)
或pp=interp1(x,y,'spline','pp'),然后pp=spline(x,y)-->yi=ppval(pp,xi)
4、分段三次埃尔米特
yi=interp1(x,y,xi,'pchip')
或yi=pchip(x,y,xi)
或pp=interp1(x,y,'pchip','pp')  pp=pchip(x,y)-->yi=pppval(pp.xi)......

阅读全文(13473) | 评论:2

MATLAB7.0的安装问题(2007-04-12 23:31:00)

摘要:  不久前,我在网上下了MATLAB7.0,解压后,运行setup.exe,出现了以下安装问题: The installer cannot read the mwinstall.dll file, This is probably due to a CD reader which can only read files with an eight.three naming convention. 然后在网上找了很久,终于找到了解决方法,我想肯定还有很多人遇到过同样的麻烦,所以现在本人将解决方法帖出来:                  对于压缩文件不要解压(这个很重要),而应直接双击压缩文件,再在内部双击setup文件,而安装前还需要做一道工作才能成功进行安装,即右键单击我的电脑,属性,高级,环境变量,将其中的系统变量temp,tmp的值改为c:\temp,并在c盘根目录下建立文件夹temp,这是由于matlab解压的默认缓存文件是c盘根目录的temp,做完这些便可以进行安装了,记住不要解压文件。   安装过程中基本是按默认的一路next下去,有一个叫输入pla,相当于注册码,输入13-22955-32678-26249-06848-40366-39620-03472-09765-20949-30945-19673-43738-38950-44548完成后你会发现打开后一会就自动关闭,不要惊慌,你的机器cpu一定是amd的,在你的安装文件夹下找到atlas_Athlon.dll文件,是用来让amd芯片进行正常工作的。因为当初mathwork公司是以intel芯片为目标的。找到这个文件比如路径是D:MATLAB7 \bin\win32\atlas_Athlon.dll,再次右键单击我的电脑属性,高级,环境变量,系统变量新建 变量名:BLAS_VERSION,值为D:MATLAB7 \bin\win32\atlas_Athlon.dll 到此整个过程完成。

 ......

阅读全文(5327) | 评论:3

提高Matlab运算速度的方法(转)(2006-05-05 14:03:00)

摘要:由于matlab是一种解释性语言,所以在matlab程序中最忌讳直接使用循环语句,如果不得已要使用for循环,可以采用以下方法提高速度。
1、使用6.5以上版本,对循环已作优化;
2、尽可能转化为矩阵运算;
3、转化为二进制执行文件运算,如使用matlab内带的编译系统或matcom以及com组件技术。

其中com组件技术最方便的就是利用com builder来实现,这里重点介绍。
com builder是matlab6.5才有的,也是mathworks公司推荐使用于混合编程的,这些日子进行了全方位的摸索,感觉是爽呆了,下面我们一起来揭开它的神秘面纱。
此系列分为以下几块:
1.matlab下做com组件
2.vb,c#.net实现调用
3.vc实现调用
4.打包
5.优缺点评注
其中2,3部分可以选择一个看

matlab下做com组件
com是component object module的简称,它是一种通用的对象接口,任何语言只要按照这种接口标准,就可以实现调用它。matlab6.5新推出来的combuilder就是把matlab下的程序做成com组件,供其他语言调用。
我们先准备两个测试文件,并copy一个图片到c盘下,起名叫1.jpg(这些你都可以改的,我这儿是为了程序方便):
第一个叫im_test.m如下:
function im_test %这个文件不带输入与输出
I=imread('c:\1.jpg'); %因为以前带有imshow的程序用mcc编成dll后用不
%了,所以想试combuilder是否
imshow(I); %能支持这些函数
第二个叫split2rgb.m,就是前些日子Zosco发给我的那个程序,因为它用mcc编成dll后有问题,所以我在这儿继续将它进行测试,而且它也带有多个输入及输出参数,所以也正好拿来测试
在matlab的workspace下打comtool,就打开了matlab com builder,点击file-new project,新建一个工程,在component name里填上comtest,Class name里填上一个sgltest(并将自动生成classes里的co......

阅读全文(9411) | 评论:1