0

我有一个数据集(二进制文件),我只想读取保存到 4D 矩阵的 X(和相应的 Y)数据的前半部分:

 for i = 1:vols
    for j = 1:cols
       XY(i,:,:,j) = fread(fid,[X Y],'int16');
    end
 end

如何修改上述循环,以便为每个 vols 和 cols 读取第一个例如 10 X 数据(和相应的 Y)?

谢谢

4

1 回答 1

1

您将需要按以下顺序为每个 vols 和 cols 实现读取:为第一个输入 X 读取 Y 的一部分,然后跳过该行的其余部分,为第二个输入 X 读取 Y 的一部分,等等。

在读取请求的 X 行数后,您需要在读取下一个 (vols, cols) 对之前跳过矩阵的其余部分。

要跳过矩阵的一部分,您可以使用 fseek 函数。

设 X_count 和 Y_cound 为子矩阵的维数;X_total 和 Y_total 是总矩阵的维度。您需要以下内容:

for i = 1:vols
   for j = 1:cols
      for k=1:X_count
          XY(i,k,:,j) = fread(fid,Y_count,'int16');
          fseek(fid,(Y_total-Y_count)*2,'cof');
      end
      fseek(fid,(X_total-X_count)*Y_total*2,'cof');
   end
end
于 2013-04-23T16:58:35.697 回答