1.mat文件格式
MATLAB(Matrix Laboratory)使用 .mat 文件格式来存储和加载数据。MAT 文件是一种二进制文件格式,能够保存 MATLAB 中的各种数据类型,包括矩阵、向量、结构体、元胞数组等。
特定和用途:
- 二进制格式: MAT 文件是以二进制形式存储的,这使得它对于存储大量数值数据非常高效。
- 支持多种数据类型: MAT 文件可以存储 MATLAB 中的各种数据类型,例如 double、single、int8、int16、int32、int64、uint8、uint16、uint32、uint64 等。
- 支持多个变量: 一个 MAT 文件可以包含多个 MATLAB 变量,这些变量在文件中以其名称保存。
- 保存结构化数据: MAT 文件可以保存结构体、元胞数组等复杂的数据结构。
- 跨平台兼容: 由于是二进制格式,MAT 文件在不同平台上是兼容的,可以在 Windows、Linux 和 macOS 上进行读写。
2.如何保存和加载 MAT 文件
% 创建一些示例数据
data1 = rand(3, 3);
data2 = struct('name', 'John', 'age', 25);
% 保存数据到 MAT 文件
save('example.mat', 'data1', 'data2');
% 清除当前工作区
clear;
% 从 MAT 文件加载数据
load('example.mat');
% 打印加载的数据
disp(data1);
disp(data2);
简单将mat文件转csv:
load('data.mat');
T = struct2table(data); %将.mat数据转换为表格类型数据
writetable(T, 'data.csv'); %将表格类型数据保存为.csv文件
3. 如何批量将MAT文件中的数据转换成Excel文件
目的:遍历MAT中Q变量的每一行,将每一行的数据转置,并以行数为文件名导出为CSV文件。
% 假设MAT文件名为data.mat,其中包含变量Q
load('data.mat');
% 获取Q的大小
[rows, ~] = size(Q);
% 指定输出路径
output_path = '/path/to/your/output/folder/';
% 遍历每一行,将其导出为CSV文件
for i = 1:rows
% 获取当前行数据
current_row = Q(i, :);
% 将数据转置
transposed_data = current_row';
% 构造CSV文件名(以行数命名)
file_name = sprintf('row_%d.csv', i);
% 指定完整的输出路径
full_output_path = fullfile(output_path, file_name);
% 导出CSV文件
csvwrite(full_output_path, transposed_data);
% 输出文件名
disp(['File exported: ', full_output_path]);
end
4. 如何根据一个Excel列表,将MAT文件中的数据转换成Excel文件(只提取部分数据)
%只提取需要的数据
excelData = readmatrix('./test.xlsx');
% 假设FID存储在excelData的第一列
fidColumn = excelData(:, 1);
% 假设Q变量保存在mat文件中,加载mat文件
load('data.mat');
output_path = './1/test/';
% 遍历FID值
for fidValue = unique(fidColumn)'
% 提取Q变量的某一列数值
qColumn = Q(:, fidValue);
% 将提取的数据保存为Excel文件,文件名为列数
outputFileName = strcat(output_path,'column_', num2str(fidValue), '.csv');
writematrix(qColumn, outputFileName);
disp(['File exported: ', num2str(fidValue)]);
end