(1)DHSVM模型官方网站上提供了一个二进制文件与ASCII文件的转换代码,是用C写的,昨天我仔细看了一下的这个代码,对二进制文件读写有了更深的认识。这个代码是对矩阵数据做处理,因此需要提供行列号。同时,我发现这个代码还可以转换数据格式,比如float to int等等。

这个代码的是写了main函数完整代码,main函数的参数包括:from format, to format, infile, outfile, nrows 和 nclos。在CodeBlocks中,运行代码配置这些参数如下:

需要说明的是,如果是from format 和 to format如果均不包含asii格式,那么这个代码执行的是数据格式转换,而且输入输出都是二进制文件。在进行转换时,需要注意的是,如果from format 和 to format包含char格式时,一定要确保数据取值范围为(-128 - 127)之间,否则会出错。原因可参考:https://docs.mql4.com/cn/basis/types/integer/integertypes

对于多个需要转换的文件,可以写个批处理命令如下:

当然,也可以将这个带有main函数的文件转换为一个函数文件,这样在代码内部对其进行调用。

(2)Matlab对二进制文件与ASCII文件转换(矩阵数据),我昨天也写了一个转换的函数。如下:

函数的调用如下:

当然这个函数,写得也比较粗糙。其实后面我觉得用MATLAB完全没有必要写个函数来转换,直接调用matlab的fread()和fwrite()函数来读写即可。

这里强调一点,在matlab读二进制文件时,与C语言(一行读完,读下一行)不同,是按照先读完一列再读下一列的顺序。比如:一个不换行的文件里含有:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15,想要输入matlab时,令其这样排:

1   2   3   4   5

6   7   8   9   10

11  12  13  14  15

则fread应该写成:A=fread(fid,[5,3]),得到:

1  6   11

2  7   12

3  8   13

4  9   14

5  10  15

然后再转置,就能得到正确结果了。

如果错误地写成A=fread(fid,[3,5]),则得到

1 4 7 10 13

2 5 8 11 14

3 6 9 12 15

显然即使转置也得不到正确结果。

转载本文请联系原作者获取授权,同时请注明本文来自张凌科学网博客。

链接地址:http://blog.sciencenet.cn/blog-922140-993328.html

上一篇:C读写二进制文件与文本文件

下一篇:显式与隐式差分

matlab char 转asc码,科学网—C语言与MATLAB对二进制文件与ASCII文件转换 - 张凌的博文...相关推荐

  1. python3的fft_科学网—用Python、Matlab、C实现傅立叶变换FFT() - 康建的博文

    一.Python,使用numpy.fft.fft或scipy的fftpack.fft: import numpy as np t=np.array([0.300, 0.550, 1.119, 0.53 ...

  2. matlab根据乐谱播放音乐,科学网-[原][Matlab][04] Midi音乐键盘-王楠的博文

    以前在网上读到一个用matlab播canon音乐的源码感觉很有意思,但声音还不够好. 于是想做个自己的音乐播放器,有键盘,有对应的钢琴声音,读取乐谱就能播.如下. (1)按键的音高与频率 从1到下一个 ...

  3. matlab画复变函数,科学网—复数复变函数的Matlab计算与绘图 - 周铁戈的博文

    复数复变函数的Matlab计算与绘图 周铁戈 复数的表示 存在两种表示方法,一种是代数式,一种是指数式,在Matlab中的方式如下: >> z=1+2i            #代数式,1 ...

  4. matlab批量生成灰度图像_科学网—matlab彩色图像的批处理转换为灰度、二值和主成分图图像 - 金秀良的博文...

    这段代码主要用来进行图像的批处理转换为灰度.二值和主成分图图像,希望给大家借鉴.其中 RGB to bw可以直接实现,但是效果不好,所以先用RGB to gray,之后再gray to bw.RGB ...

  5. matlab 二维矩形函数,科学网—利用MATLAB对非矩形域实现二维插值 - 张乐乐的博文...

    >> load('x1.mat'); >> load('y1.mat') >> load('T.mat'); >> load('Lon.mat'); & ...

  6. matlab 二维插值 验证,科学网-利用MATLAB对非矩形域实现二维插值-张乐乐的博文...

    >> load('x1.mat'); >> load('y1.mat') >> load('T.mat'); >> load('Lon.mat'); & ...

  7. matlab 数据分割,科学网—MATLAB把一个包含多个站点数据的文件分割到各个站点单独的文件夹 - 张乐乐的博文...

    有65个站点的气象数据,但是这些数据全部在一个文件中,本程序主要想着把每个站点的数据放在各个单独的文件夹中.下面是我给写的程序: clear;clc %读取数据 shuju=importdata('C ...

  8. matlab的peer啥意思,科学网—Matlab读取PEER地震动记录数据库加速度数据函数 - 王德才的博文...

    PEER地震动记录数据库是目前应用最为广泛的数据库,为了便于利用其中的强震记录,对几年前采用Matlab编写的读取加速度数据函数进行了改写,使用了向量化的编写规则,减少了原有的循环处理,比原来的程序简 ...

  9. matlab加速度转化为位移,科学网—Matlab编写由加速度积分得到速度和位移函数 - 王德才的博文...

    研究中经常会用到将加速度数据积分成速度和位移,对前几年编写的程序重新进行了改写.为了测试和验证peer2acc函数.dirFolder函数和acc2vd函数,编写了一个简单的测试程序 acc2vd函数 ...

  10. 单纯性搜索算法 matlab函数,科学网—一种有效的最优化方法——Nelder-Mead单纯形直接搜索算法 - 王福昌的博文...

    虽然MATLAB本身自带了fminsearch()函数,可以求解目标函数无梯度的最优化问题,但是感觉下面的程序在很多时候更好用,特别是自变量有边界和非线性约束的时候. 这里是John D'Errico ...

最新文章

  1. 最小长度电路板排列问题_射频电路板设计,这篇文章五大总结不可忽视!
  2. Python Coding Guidelines
  3. android service 学习(下)
  4. js获取url参数值
  5. android学汇资料总整理
  6. seo每日一贴_白杨SEO:我看ZAC的外贸SEO应该怎样做?(策略篇)
  7. 寄存器分配图着色_寄存器分配
  8. DELPHI跨平台的临界替代者
  9. 【HDU - 6558】The Moon(期望dp)
  10. Android10打断动画,Android开发(10) 动画(Animation)
  11. [CF Skills]如何在预定的时间运行你的程序
  12. 在Windows下编译OpenSSL(VS2005)【转】
  13. gsm模块 java 录音_Android GSM驱动模块详细分析
  14. python怎么读文件-python怎么读json文件
  15. jquery中ajax应用——get()和post()
  16. 原神改文件换服务器,原神官服和b服怎么切换
  17. 蚂蚁花呗账单分期和交易分期的费用如何计算?
  18. Spark学习-DAY1
  19. 为 Nexus 5 准备的 Sailfish 移植版本
  20. 2012年9月TIOBE编程社区指数

热门文章

  1. c语言输出打印字符串数组,C语言字符串输出
  2. python教你如何把自己的微信变成机器人
  3. Easyui datagrid数据清空
  4. 安防监控、智慧交通 视频结构化(车辆+行人)实现方案
  5. 华三交换机查看光模块参数的命令
  6. android转发短信到邮箱,Android手机使用Tasker转发短信及来电
  7. docker打包镜像上传_docker制作自己的镜像并上传dockerhub
  8. 深入Unreal蓝图开发:实现蓝图模板函数
  9. php汽车保养oa,汽车行业oa管理系统
  10. 计算机研究院分所烟台,综合新闻_中科院计算所烟台分所 烟台中科网络技术研究所...