【发布时间】:2015-09-23 01:08:46
【问题描述】:
在 MATLAB 中是否有二次采样可供阅读?输入数据如下:
id=3,age=25, 0.5 0.5 0.2 0.6 0.6 0.5
id=1,age=15, 0.5 0.8 0.2 0.9 0.6 0.9
id=7,age=24, 0.5 0.2 0.9 0.6 0.1 0.5
(已编辑)对于 LAST SIX 列,我只想要三的倍数的列(即 LAST SIX COLUMNS 中的第 3 列和第 6 列,相当于整个第 5 列和第 8 列数据文件)被读取。也就是像这样的矩阵:
0.2 0.5
0.2 0.9
0.9 0.5
理想情况下,代码如下所示:
for line=1:maxLine
header(line,:) = fscanf(fid,'id=%d,age=%d,',[1,2]);
content(line,:) = fscanf(fid,'only read columns multiple of three');
end;
我知道我可以读取整行和子样本,问题是,我正在处理的数组规模很大,10k+ 列,我不想消耗太多内存。
【问题讨论】:
-
“三的倍数”是什么意思?
0.2和0.5不能被 3 整除,并且在任何行或列中出现 3 次的唯一数字是0.5。
标签: matlab memory scanf formatted-input