前段时间有多个网友询问在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. Oracle数据库like和not like使用

    查询手机号注册的记录而不是邮箱 查询2开头的记录 select * from beyond_pay_offline where amount like '2%'

  2. XproerIM V2开源,基于XproerUI引擎构架

    资源下载:XproerIM源代码(访问密码:2e47),imServer(访问密码 364c), 技术交流群:6259765 技术支持:3040217208 咨询邮箱:2190615607@qq.co ...

  3. linux Makefile obj-m obj-y

    目标定义是Kbuild Makefile的主要部分,也是核心部分.主要是定义了要编 译的文件,所有的选项,以及到哪些子目录去执行递归操作. 最简单的Kbuild makefile 只包含一行: 例子: ...

  4. c# 实现 java 的 System.currentTimeMillis() 值

    本文地址:http://www.cnblogs.com/jying/p/3875331.html 以下一句即可实现 java 中的 System.currentTimeMillis() 值 , , , ...

  5. XML数据 JSON数据 LitJSON 数据 的编写和解析 小结

    用XML生成如下数据<?xml version="1.0"encoding="UTF-8"?><Transform name="My ...

  6. Halcon学习之tuple

    * define a tuple for int, double, string... not for object d:=[] * assignment d[0] := 'a string' * g ...

  7. Regex

    1. regex with variable example: find the number and put a parenthese around the number. output: a(52 ...

  8. 使用多文档接口(Multiple Document Interface) 一

    原文地址msdn:https://msdn.microsoft.com/en-us/library/windows/desktop/ms644909(v=vs.85).aspx#creating_fr ...

  9. 反射——Java反射机制

    反射概述 什么是反射? ①   反射的概念是由Smith在1982年首次提出的,主要指程序可以访问.检测和修改它本身状态或行为的一种能力. ②   JAVA反射机制是在运行状态中,对应任意一个类,都能 ...

  10. 完整地mybatis + springmvc用checkbox实现批量删除

    因为自己在网上找了半天,都找不到完整地代码(脑袋笨,不会变通到自己项目里),所以在这里记下了近乎完整的代码 前端代码 <span style="cursor:pointer;" ...