0

4Dマトリックスに保存されたX(および対応するY)データの前半のみを読み取りたいデータセット(バイナリファイル)があります:

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

上記のループを変更して、最初の 10 個の X データ (および対応する Y) のみが各 vols と cols に読み込まれるようにするにはどうすればよいですか?

ありがとう

4

1 に答える 1

1

各 vols と cols の読み取りを次の順序で実装する必要があります: 最初の入力 X の Y の一部を読み取り、この行の残りをスキップして、2 番目の入力 X の Y の一部を読み取る、など。

要求された数の X 行を読み取った後、次の (vols、cols) ペアを読み取る前に残りの行列をスキップする必要があります。

行列の一部をスキップするには、fseek 関数を使用できます。

X_count と Y_cound を部分行列の次元とします。X_total と Y_total は、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 に答える