MATLAB mat 文件

本文介绍了MATLAB的MAT文件格式,其作为二进制文件用于高效存储各种数据类型,包括矩阵、结构体等。文章详细讲解了如何保存和加载MAT文件,以及如何将MAT数据转换为CSV和Excel文件,特别提到了根据Excel列表提取MAT文件部分数据的方法。
摘要由CSDN通过智能技术生成

1.mat文件格式

MATLAB(Matrix Laboratory)使用 .mat 文件格式来存储和加载数据。MAT 文件是一种二进制文件格式,能够保存 MATLAB 中的各种数据类型,包括矩阵、向量、结构体、元胞数组等。

特定和用途:

  1. 二进制格式: MAT 文件是以二进制形式存储的,这使得它对于存储大量数值数据非常高效。
  2. 支持多种数据类型: MAT 文件可以存储 MATLAB 中的各种数据类型,例如 double、single、int8、int16、int32、int64、uint8、uint16、uint32、uint64 等。
  3. 支持多个变量: 一个 MAT 文件可以包含多个 MATLAB 变量,这些变量在文件中以其名称保存。
  4. 保存结构化数据: MAT 文件可以保存结构体、元胞数组等复杂的数据结构。
  5. 跨平台兼容: 由于是二进制格式,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
  • 13
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值