You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Matlab中从mat文件选取指定行并划分训练测试集

嘿,我来帮你搞定这两个Matlab里处理.mat文件的问题,都是日常数据处理里很常用的操作,直接上干货👇

问题1:从.mat文件中选取指定行(比如第1-5行、11-15行)

操作起来很简单,核心是利用Matlab的索引特性,步骤如下:

  • 首先用load()函数加载你的.mat文件,如果你不确定文件里的变量名,加载后可以用whos命令查看;
  • 然后把需要的行索引组合起来,用方括号包裹即可。

举个具体的例子,假设你的.mat文件名叫sample_data.mat,里面存储的变量是raw_data:

% 加载mat文件
load('sample_data.mat');

% 选取第1-5行 + 第11-15行的所有列数据
selected_data = raw_data([1:5, 11:15], :);

解释一下:1:5会生成连续的行索引1到5,11:15同理,用逗号把两个索引数组合并后,就可以一次性选中目标行;后面的:表示保留所有列数据。

问题2:按指定行划分训练集和测试集

针对你提到的“第一列为类名,其余为特征”的.mat文件,我们可以先定义训练集和测试集的行索引,再完成划分,代码示例如下:
假设你的.mat文件变量名为full_dataset:

% 加载目标mat文件
load('your_dataset.mat');

% 定义训练集的行索引:1-5、11-15、21-25行
train_indices = [1:5, 11:15, 21:25];
% 定义测试集的行索引:6-10、16-20、26-30行
test_indices = [6:10, 16:20, 26:30];

% 划分训练集和测试集
trainData = full_dataset(train_indices, :);
testData = full_dataset(test_indices, :);

如果后续需要把类名和特征向量分开处理(比如做分类任务),还可以进一步拆分:

% 提取训练集的类名和特征
train_labels = trainData(:, 1);
train_features = trainData(:, 2:end);

% 提取测试集的类名和特征
test_labels = testData(:, 1);
test_features = testData(:, 2:end);

内容的提问来源于stack exchange,提问作者user2102092

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:23:49