【问题标题】:Conversion of 2000x3 decimal matrix .txt file into binary 2000x3 .txt file [closed]将 2000x3 十进制矩阵 .txt 文件转换为二进制 2000x3 .txt 文件 [关闭]
【发布时间】:2020-02-10 06:53:05
【问题描述】:

首先,我有 2000x3 矩阵 .txt 文件,其中包含十进制数字,因此我想将所有十进制值转换为它们的二进制表示。我怎样才能在 Matlab 中做到这一点?提前致谢! 例如

6   6   13
2   6   46
4   5   10
20  30  70
10  24  182
80  44  446
19  13  940
18  9   15
60  33  16
4   28  220
2   6   46
30  26  53
16  8   98
10  24  250
18  20  512
....
.....

【问题讨论】:

  • “二进制表示”是什么意思?你能包括输出应该是什么样子吗?
  • 我试着说二进制编码十进制 (BCD)

标签: matlab binary decimal


【解决方案1】:

我会假设如下:

  • 矩阵中的所有数字都是ints,您希望将它们以二进制形式存储为小端格式的 8 字节 ints。
  • 您希望数据文件在每一行中都是连续的:即 6 之后是 6,然后是 13,然后是 2 ...

有了这些假设,以下是实现目标的一种方法:

fid = fopen('myfile.txt', 'r');
A = fscanf(fid, '%d', [3, 2000])'; % now A is a 2000x3 matrix that looks like your sample
fclose(fid);

% do stuff with A, if desired

fid = fopen('myfile.dat', 'w');
fwrite(fid, A', 'int', 'l'); % note the transpose
fclose(fid);

fwrite 中的转置是因为 MATLAB 使用列优先索引,而代码假定输出应该是行优先索引。

【讨论】:

  • 这真的很有帮助!
猜你喜欢
  • 2016-08-31
  • 1970-01-01
  • 2016-03-06
  • 1970-01-01
  • 2017-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-28
相关资源
最近更新 更多