前段时间有多个网友询问在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. Google V8编程详解(四)Context

    http://blog.csdn.net/feiyinzilgd/article/details/8266780 上一章,比较略提了下V8的Context.本章将详细的讲解下Context的概念以及用 ...

  2. 过滤表名 & 拼接字符串

    /// <summary> /// 分析sql语句中的表名 /// </summary> /// <param name="sql">sql语句 ...

  3. Calendar /String /Date 转换

    Calendar 转化 String Calendar calendat = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDate ...

  4. 循序渐进Python3(十二) --0--  web之框架

    web框架的本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env python #coding:utf ...

  5. 特殊字符(包含emoji)的梳理

    背景知识 emoji表情符号,是20世纪90年代由NTT Docomo栗田穣崇(Shigetaka Kurit)创建的,词义来自日语(えもじ,e-moji,moji在日语中的含义是字符).emoji可 ...

  6. HTML5 --照抄书里的代码但函数无法执行、求分析( Uncaught ReferenceError: xxx is not defined)

    在js文件里写一个方法传参数: moveElement(id,name,price) { alert("id:"+id+"name:"+name+"p ...

  7. Button四角有弧度及按下显示不同的颜色

    一般的button都是矩形或者正方形,但为了显示不同的效果,让界面更美化,可以对其进行处理!!! 1.四角有弧度的button 2.按下button显示不同的颜色 实现步骤: 首先在drawable文 ...

  8. fastjson将json字符串转化成bean对象解析出错的检查方法

    我的情况是:解析第一层数据成功,解析第二层嵌套的数据失败.如: { "response": { "resultcode": "0", &qu ...

  9. 关于兼容性——百分比对于IE浏览器的影响

    之前为了适应页面放大或者缩小,很多宽度都是写的百分比,后来发现有产生换行现象 总结一下: 如果页面是满占位的,我想百分比在谷歌.火狐都应该没什么问题,在IE 就会产生换行  因为IE浏览器存在一个四舍 ...

  10. centos文件误删除恢复

    Centos 文件误删除 当意识到误删除文件后,切忌千万不要再频繁写入了,否则 你的数据恢复的数量将会很少. 而我们要做的是,第一时间把服务器上的服务全部停掉,直接killall 进程名 或者 kil ...