MATLAB读取OpenFOAM的二进制文件

news2024/9/25 17:16:46

OpenFOAM的文件格式

在这里插入图片描述
上面是OpenFOAM二进制文件的格式,我们可以看出,前面21行都是无关的说明文件,22开始时除了一个括号之外,其它的都是数据。

读取数据

读取数据的思路非常简单,忽略不需要的,读取需要的。
接下来我们将使用到四个函数,fopen(),fgetl(),fread(),fclose()

1、打开文件

fidU = fopen(Ufatch,'r');%Upatch为文件的路径

2、忽略不需要的注释

%%忽略头文件
for n = 1:21
    [~] = fgetl(fidU);
end
[~] = fread(fidU,1,'char');

注意这里首先忽略了21行,然后忽略了一个字节,也就是那个括弧

3、读取我们需要的数据

%%读取数据
U_mag = fread(fidU,3*nx*ny*nz,'double');

4、关闭文件

最后的最后,一定要记得关闭文件,不然程序可能会崩

fclose(fidU);

注意上面的3nxny*nz是数据的大小,nx,ny,nz是每个方向的网格数,由于速度有三个分量,所以这里乘以3。‘double’代表我们读取的是双精度的文件,告诉程序每个分量是多少个字节(这里好像是16个?忘了,不重要,知道是double就行)。前面的括弧就是只有一个字节。
这里我们就成功从二进制文件中读取到了数据!是不是非常简单。

我的代码

最后附上一个我个人写的读取数据的函数,该函数有四个输入参数,路径(fpatch),以及各个方向的网格数(gridNumY,gridNumX,gridNumZ)
返回参数是速度和温度矩阵。

%%read data
function [U,V,W,T] = readBinaryFile(fpatch,nx,ny,nz)
%---读取OpenFOAM-8二进制文件U,T
%---nx,ny,nz为网格数,fpatch为文件所在路径
Ufatch = strcat(fpatch,'U');
Tfatch = strcat(fpatch,'T');
fidU = fopen(Ufatch,'r');
fidT = fopen(Tfatch,'r');
%---读取速度数据
%%忽略头文件
for n = 1:21
    [~] = fgetl(fidU);
end
[~] = fread(fidU,1,'char');
%%读取数据
U_mag = fread(fidU,3*nx*ny*nz,'double');
un = 1:3:3*nx*ny*nz;vn = 2:3:3*nx*ny*nz;wn = 3:3:3*nx*ny*nz;
if nz==1
    U = reshape(U_mag(un),nx,ny);
    V = reshape(U_mag(vn),nx,ny);
    W = reshape(U_mag(wn),nx,ny);
elseif nz>1
    U = reshape(U_mag(un),nx,ny,nz);
    V = reshape(U_mag(vn),nx,ny,nz);
    W = reshape(U_mag(wn),nx,ny,nz);
end
fclose(fidU);
%---读取温度数据
%%忽略头文件
for n = 1:21
    [~] = fgetl(fidT);
end
[~] = fread(fidT,1,'char');
%%读取数据
T = fread(fidT,nx*ny*nz,'double');
if nz==1
    T = reshape(T,nx,ny);
elseif nz>1
    T = reshape(T,nx,ny,nz);
end
fclose(fidT);
end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/657494.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第七十七天学习记录:高等数学:定积分应用(宋浩板书)

定积分是微积分的一种应用,通过定积分可以求出曲线下面的面积、弧长、质心、转动惯量等一系列物理量。以下是定积分的一些常见应用: 曲线下面的面积:定积分可以用于求曲线下面的面积。举个例子,如果想要求函数f(x) x^2在区间[0,1…

VFC芯片结构及其工作原理

(二) VFC芯片结构及其工作原理 1.VFC芯片 AD654的结构 AD654芯片是一个单片VFC变换芯片,中心频率为250kHZ。它是由阻抗变换器A、压控振荡器和一个驱动输出级回路构成,其内部结构见图1-15(a入压…

VFC式数据采集系统

三、VFC式数据采集系统 (一)VFC型的A/D变换概述 一般来说在 A/D的变换过程中, CPU要使 S/H、 MPX、 A/D三个芯片之间控制协调好,因此接口电路复杂。而且ADC芯片结构较复杂&#xff0…

车载软件架构 —— 闲聊几句AUTOSAR OS(五)

我是穿拖鞋的汉子,魔都中坚持长期主义的工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他人的角度来反对自己。人生在世,最怕的就是把别人的眼光当成自己生活的唯一标准。到最…

Nature揭示--迷幻药物如何实现其强大的健康益处

迷幻药物MDMA(也称为摇头丸)的结晶,可以恢复小鼠从环境中学习特定方面的能力。图片来源: Police Scotland/Contraband Collection/Alamy 迷幻药物是一类能够引起意识状态改变的药物,被广泛应用于精神和医疗领域。尽管迷…

【简单便捷】解决Ubuntu内存不足问题:Ubuntu16.0.4 进行内存扩容

文章目录 电脑环境前言一、总述二、先在标题:虚拟机-->设置上进行扩容三、扩容之后 打开终端 执行 sudo apt install gparted四、执行 sudo gparted五、扩容成功六、重启测试 可以看到大概率成功了。 电脑环境 Windows 11 专业版系统 前言 在开发初期&#xf…

232 · 短网址

链接:LintCode 炼码 题解: class TinyUrl { public:/** param url: a long url* return: a short url starts with http://tiny.url/*/string longToShort(string &url) {// write your code herestd::string shorturl generate_shorturl(url);whi…

为CentOs配置静态IP

目录 第一步:查看物理机IP 第二步:虚拟机网络设置 点击虚拟机->编辑虚拟机设置 第三步:CentOS网络配置文件 第四步:重启网络 第五步:测试网络 为什么要设置静态IP 在安装好CentOS虚拟机以后,一般我…

代码随想录算法训练营第三十九天| 62.不同路径 、63. 不同路径 II

不同路径 题目链接:力扣 题外话:这题拿到的时候就发现其实是小学三年级的奥数题,甚至寒假看我妹做过【笑哭😂】 确定dp数组(dp table)以及下标的含义 dp[i][j] :表示从(0,0&…

nvm控制nodejs版本

1.关系如图 2. 环境配置 3.报错解决 路径导致的nvm安装nodejs失败? The system cannot find the path specified. Could not download node.js v16.19.1 64-bit executable. 解决:nvm安装路径D:\Program Files\nvm,nvm管理的nodejs路径D:\Pro…

在Qgis中使用QMetaTiles插件进行XYZ瓦片离线下载方法

目录 前言 一、Qgis插件库 1、插件库简介 2、QMetaTiles介绍 二、QMetaTiles插件安装 1、在线安装 2、离线安装 三、瓦片下载 1、打开QmeaTiles插件 2、Leaflet加载下载的瓦片 总结 前言 电子地图是地图类应用的基石,作为整个系统的基础。其它的图层要素都构…

Web应用技术(第八周/第4次练习/4h)

这一次练习对JSP和Servlet进行了补充学习 1.JSP的本质:2.include指令的作用:3.EL表达式语言与JSTL:关于EL表达式:(1)EL表达式用于取参数值与参数值的设定:(2)EL表达式的本…

【Redis】哨兵机制

一、哨兵机制高可用架构图 哨兵模式时给予主从模式的,是为了解决主从模式单点(master)故障导致服务不可用的问题,但并未解决单节点存储能力有限的问题。 二、心跳检测机制 三、 选举机制 主观下线:主服务器master宕机后…

html实现好看的个人介绍,个人主页模板4(附源码)

文章目录 1.设计来源1.1 主界面1.2 我的文章界面1.3 我的相册界面1.4 关于我界面1.5 联系我界面 2.效果和源码2.1 动态效果2.2 源代码2.2 源代码目录 源码下载 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/131265259 …

web实验四表单处理实验

实验原理 通过jQuery实现修改HTML标签属性,完成网页的动态显示效果,理解JavaScript语法、动态页面的实现原理、基本设计思想及实现方法。 实验目的 理解并掌握基于id、class、name等HTML属性选择器的实现方法 理解并掌握控制disabled、checked、hidden等…

python自动化办公——定制化读取Excel数据并写入到word表格

Python自动化办公——Excel写word表格 文章目录 Python自动化办公——Excel写word表格一、引言二、数据准备三、python代码1、方法一2、方法二3、方法三 一、引言 最近到了毕业设计答辩的时候,老师让我帮毕业生写一段毕业设计的功能就是提供一个学士学位授予申请表…

网安自学路线学习心得/学习规划

趁着今天下班,我花了几个小时整理了下,非常不易,希望大家可以点赞收藏支持一波,谢谢。 我的经历: 我 19 年毕业,大学专业是物联网工程,我相信很多人在象牙塔里都很迷茫,到了大三大…

pywinauto自动化测试使用经验

本文主要介绍了pywinauto自动化测试使用经验,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 在开发Windows应用程序时,我们经常需要进行测试来确保程序…

CSS基础学习--16 Float(浮动)

一、定义 CSS 的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列。 Float(浮动),往往是用于图像,但它在布局时一样非常有用。 元素的水平方向浮动,意味着…

【Spring】— Spring MVC的注解

目录 Spring MVC的注解1.DispatcherServlet2.Controller注解类型3.RequestMapping注解类型(1)RequestMapping注解的使用(2)RequestMapping注解的属性(3) 组合注解(4)请求处理方法的参…