2.22040000000000e-16经过% 读取txt文件data1 = load('data1.txt');data2 = load('data2.txt');data3 = load('data3.txt');% 组合数据data = cat(3, data1, data2, data3);% 保存mat文件save('data.mat', 'data', '-v7.3');后变为0,怎么让他保持原数
时间: 2023-12-01 21:03:52 浏览: 162
在MATLAB中,默认情况下,load函数会将读取的数据转换为双精度浮点数。由于双精度浮点数的精度是有限的,当一个非常接近于0的数经过保存和读取后,可能会变成0。因此,如果要保持原数的精度,可以考虑使用其他的保存和读取方法。
一种方法是使用dlmread函数读取txt文件,该函数可以指定数据类型。例如,如果原数据类型为双精度浮点数,则可以使用以下代码读取txt文件,并保持原数据类型不变:
```matlab
% 读取txt文件
data1 = dlmread('data1.txt', '\t', 0, 0, 'double');
data2 = dlmread('data2.txt', '\t', 0, 0, 'double');
data3 = dlmread('data3.txt', '\t', 0, 0, 'double');
% 组合数据
data = cat(3, data1, data2, data3);
% 保存mat文件
save('data.mat', 'data', '-v7.3');
```
在这个例子中,我们使用dlmread函数读取txt文件,并指定数据类型为双精度浮点数。最后使用cat函数将它们沿着第三个维度(即深度)组合成一个3维数据data。最后使用save函数将数据保存成mat文件data.mat,并指定数据类型为v7.3,以支持更大的文件大小。
另外一种方法是使用importdata函数读取txt文件,该函数可以保持原数据类型不变。例如,如果原数据类型为双精度浮点数,则可以使用以下代码读取txt文件,并保持原数据类型不变:
```matlab
% 读取txt文件
data1 = importdata('data1.txt');
data2 = importdata('data2.txt');
data3 = importdata('data3.txt');
% 组合数据
data = cat(3, data1, data2, data3);
% 保存mat文件
save('data.mat', 'data', '-v7.3');
```
在这个例子中,我们使用importdata函数读取txt文件,并保持原数据类型不变。最后使用cat函数将它们沿着第三个维度(即深度)组合成一个3维数据data。最后使用save函数将数据保存成mat文件data.mat,并指定数据类型为v7.3,以支持更大的文件大小。
阅读全文