前段时间有多个网友询问在64位Matlab中如何使用WASPCN(水和蒸汽性质计算软件)的方法,一直没能给出解决方案。

最近自己有个项目也需要在64位Matlab中如何使用WASPCN(水和蒸汽性质计算软件),不得不设法解决问题了。

整个解决过程还真不简单。

需要先把原来的WASPCN.dll修改出64位版本的dll,由于原来dll是采用Delphi开发的,64位版本修改过程遇到了一些技术问题一直未能解决,最后不得不放弃,改用VC来重新dll。

还好以前有基础,先把32位dll的编程语言由Delphi换成VC,调试通过获得了waspcn32.dll,并进行了软件测试。 然后再改成64位版本的,编译获得了waspcn64.dll。

最后就是完成Mex扩展库的更新, 分别编写出32位版本的WASPCNMEX32.mexw32和64位版本的WASPCNMEX64.mexw64。

现在在Matlab可以采用两种方式装载WASPCN计算库。

方法一:装载Mex扩展库方式。
方法二:装载普通DLL库方式。

一、在MATLAB中使用《水和蒸汽性质计算》(WASPCN)的方法(采用Mex方式)。
--------------------------------------(32 位 MATLAB)----------------------------
(1)确保Waspcn32.dll在操作系统的搜索路径(例如:D:\Program Files\MATLAB\R2011b\runtime\win32)中,或MATLAB的可搜索路径中。(可通过Path命令来查看。)。
(2)把Mex扩展库WASPCNMEX32.dll文件拷贝到MATLAB的userpath路径(例如:C:\Users\WASPCN\Documents\MATLAB)中。(可通过userpath命令来查看。)
为了和高版本的Matlab兼容(比如Matlab R2008),需要把WASPCNMEX32.dll的扩展名由dll改成mexw32(即WASPCNMEX32.mexw32)。
(3)在MATLAB的命令窗口中输入如下形式的命令来计算(请注意WASPCNMEX32必须是大写,其它函数可以大小写混用)。
%a.输入4参数,输出2参数
[N,R] = WASPCNMEX32('PT2N',16.67,535.0,0.00001)
   
%b.输入3参数,输出2参数
[H,R] = WASPCNMEX32('pt2h',16.67,535.0)
    
%c.输入2参数,输出2参数
[T,R] = WASPCNMEX32('P2T',10.0)
%d.输入3参数,输出1参数
H     = WASPCNMEX32('pt2H',16.67,535.0)
%e.输入3参数,输出1参数
T     = WASPCNMEX32('p2T',10.0)
%f.输入3参数,输出7参数
[P,T,H,S,V,X,R] = WASPCNMEX32('PT',16.67,535.0)
--------------------------------------(64 位 MATLAB)----------------------------
    
(1)确保Waspcn64.dll在操作系统的搜索路径(例如:D:\Program Files\MATLAB\R2011b\runtime\win64)中,或MATLAB的可搜索路径中。(可通过Path命令来查看。)。
(2)把Mex扩展库WASPCNMEX64.dll文件拷贝到MATLAB的userpath路径(例如:C:\Users\WASPCN\Documents\MATLAB)中。(可通过userpath命令来查看。)
为了和高版本的Matlab兼容(比如Matlab R2008),需要把WASPCNMEX64.dll的扩展名由dll改成mexw64(即WASPCNMEX64.mexw64)。
(3)在MATLAB的命令窗口中输入如下形式的命令来计算(请注意WASPCNMEX64必须是大写,其它函数可以大小写混用)。
%a.输入4参数,输出2参数
[N,R] = WASPCNMEX64('PT2N',16.67,535.0,0.00001)
   
%b.输入3参数,输出2参数
[H,R] = WASPCNMEX64('pt2h',16.67,535.0)
    
%c.输入2参数,输出2参数
[T,R] = WASPCNMEX64('P2T',10.0)
%d.输入3参数,输出1参数
H     = WASPCNMEX64('pt2H',16.67,535.0)
%e.输入3参数,输出1参数
T     = WASPCNMEX64('p2T',10.0)
%f.输入3参数,输出7参数
[P,T,H,S,V,X,R] = WASPCNMEX64('PT',16.67,535.0)    

二、在MATLAB中使用《水和蒸汽性质计算》(WASPCN)的方法(采用LoadLibrary方式)。

--------------------------- 32位 的matlab ----------------

(1)确保Waspcn32.dll在操作系统的系统搜索路径中(例如:D:\Program Files (x86)\MATLAB\R2014a\runtime\win32)或MATLAB的可搜索路径中。(可通过Path命令来查看。)
(2)把WASPCN32.h文件拷贝到MATLAB的userpath路径(例如:C:\Users\WASPCN\Documents\MATLAB)中。(可通过userpath命令来查看。)
或者
创建自定义目录(例如:D:\Program Files (x86)\MATLAB\R2014a\toolbox\WASPCN)并添加到系统path
%  把创建的目录添加到系统path中
addpath(genpath('D:\Program Files (x86)\MATLAB\R2014a\toolbox\WASPCN'));
%  保存路径
savepath; 
(3)在MATLAB的命令窗口中输入如下形式的命令来调用WASPCN中的函数。
% 装载函数库(loadlibrary dll文件名 h文件名)
loadlibrary WASPCN32 WASPCN32.h;
%
% 调用函数calllib('dll文件名', 'T_P97', 16.0)
T=calllib('WASPCN32', 'T_P97', 16.0)
%
P=calllib('WASPCN32', 'P_T97', 300.0)
%
H=calllib('WASPCN32', 'H_PT97', 16.0,535.0)
%
% 卸载函数
unloadlibrary WASPCN32
--------------------------- 64位 的matlab ----------------
Win7 64位系统 安装64位的matlab
(1)确保Waspcn64.dll在操作系统的系统搜索路径中(例如:D:\Program Files\MATLAB\R2011b\runtime\win64)或MATLAB的可搜索路径中。(可通过Path命令来查看。)
(2)把WASPCN64.h文件拷贝到MATLAB的userpath路径(例如:C:\Users\WASPCN\Documents\MATLAB)中。(可通过userpath命令来查看。)
或者
创建自定义目录(例如: D:\Program Files\MATLAB\R2011b\toolbox\WASPCN)并添加到系统path
%  把创建的目录添加到系统path中
addpath(genpath('D:\Program Files\MATLAB\R2011b\toolbox\WASPCN'));
%  保存路径
savepath; 
(3)在MATLAB的命令窗口中输入如下形式的命令来调用WASPCN中的函数。
% 装载函数库(loadlibrary dll文件名 h文件名)
loadlibrary WASPCN64 WASPCN64.h;
%
% 调用函数calllib('dll文件名', 'T_P97', 16.0)
T=calllib('WASPCN64', 'T_P97', 16.0)
%
P=calllib('WASPCN64', 'P_T97', 300.0)
%
H=calllib('WASPCN64', 'H_PT97', 16.0,535.0)
%
% 卸载函数
unloadlibrary WASPCN64
    

当然,这两个WASPCN  For Matlab的接口可以从scyangyu.ys168.com下载。

再次完善了 WASPCN for Matlab的更多相关文章

  1. MATLAB 与 Excel 接口

    MATLAB 与 Excel 接口MATLAB 与 Excel 有两种接口方式:一种是通过 MATLAB 提供的 Excel 生成器,生成220 MATLAB 实用教程DLL 组件和 VBA 代码,实 ...

  2. SQL Server 维护计划实现数据库备份(策略实战)

    一.背景 之前写过一篇关于备份的文章:SQL Server 维护计划实现数据库备份,上面文章使用完整备份和差异备份基本上能解决数据库备份的问题,但是为了保障数据更加安全,我们需要再次完善我们的备份计划 ...

  3. 从零开始编写自己的C#框架(7)——需求分析

    本章内容虽然叫“需求分析”,实际上关于具体的需求分析操作步骤并没有深入去写,因为细化的话那将是一本厚厚的书,而需求分析在本系列中,是帮助大家了解项目的基本要求(主要针对本项目而已).而写本章的主要目的 ...

  4. php之验证码小程序

    验证码功能(个人理解): 减轻服务器的压力(如12306的验证码功能): 防止暴力注册 个人思路:在a-z,A-Z,1-9生成n位随机的数来构成新的验证码. 关于生成验证码的几个小函数 range() ...

  5. background-image 和 img

    一:解决div里面的img图像宽度不变,高度不变!   超出div部分设置隐藏! 图片:1920x526 div容器: 1423x526 1. background-image:样式实现 img: 标 ...

  6. 【转】从零开始编写自己的C#框架(7)——需求分析

    转自:http://www.cnblogs.com/EmptyFS/p/3653934.html 本章内容虽然叫“需求分析”,实际上关于具体的需求分析操作步骤并没有深入去写,因为细化的话那将是一本厚厚 ...

  7. SQL Server 2008 维护计划实现数据库备份

    SQL Server 2008 维护计划实现数据库备份(最佳实践) 2013-08-29 09:08 by 听风吹雨, 173 阅读, 2 评论, 收藏, 编辑 一.背景 之前写过一篇关于备份的文章: ...

  8. SQL Server 2008 维护计划实现数据库备份(最佳实践)

    一.背景 之前写过一篇关于备份的文章:SQL Server 维护计划实现数据库备份,上面文章使用完整备份和差异备份基本上能解决数据库备份的问题,但是为了保障数据更加安全,我们需要再次完善我们的备份计划 ...

  9. Linux 中 Windows 中文乱码

    Linux 下 Windows 源代码中文乱码 由于 windows 和 linux 对文本的编码方式不同,所以经常会有 windows 中生成的文本在 linux 中打开乱码的情况. 比如: 我面临 ...

随机推荐

  1. [ZT]嵌入视频播放器代码

    http://www.cnblogs.com/liulanglang/archive/2007/11/29/976638.html 页面插入REAL播放器代码: < id=video1 styl ...

  2. VC++ CStatic控件背景透明且改变其文本时,文字重叠解决方法

    最近在项目中将CStatic控件设置为背景透明且在一个定时器函数改变其文本,结果CStatic的文字重叠了.解决该问题的方案是:从CStatic类派生自己的静态文本控件. 其实设置背景透明,也就是在C ...

  3. 开启macbook win7触控屏右键

    开启macbook win7触控屏右键,如下图

  4. 简单又高效的Access分页语句

    转自:http://www.ljf.cn/archives/2281 Access实现分页其实也可以在查询语句里面做. 除了流行的top分页法之外,其实还有一种更简单,更容易理解,并且效率也不低的分页 ...

  5. cf732f

    思路:先缩点,再以最大连同分量为根dfs,代码太垃圾不想贴

  6. iOS 开发 常用的正则验证表达式:电话 、邮箱等等

    #pragma mark - 验证手机号 +(BOOL)checkForMobilePhoneNo:(NSString *)mobilePhone{ NSString *regEx = @" ...

  7. matlab计算差分函数diff

    A = 3 2 5 6 5 2 1 8 4 2 7 9 >> diff(A,1,1) ans = 2 0 -4 2 -1 0 6 1 >> diff(A,1,2) ans = ...

  8. MySQL root密码找回

    以MySQL多实例为例,演示找回MySQL root的密码 1.关闭mysql服务 [root@mysql ~]# mysqladmin -uroot -poldboy123 -S /data/330 ...

  9. Glide 加载图片

    //通过model获取到图片的url,将Url转换成bitmap对象: //设置不保存内存和硬盘缓存, 1 Glide.with(mContext).load(model.getVideoUrl()) ...

  10. auth用户认证库

    关于auth库,建议如下:1. ion_auth,基于Redux重写而成,非常不错的认证库,国外用的很多,几个最新的ci2.0.2基础上的开源系统(如doveforum)都用它,支持ci 2.0和以上 ...