Matlab, fread, 여러 데이터 유형 및 여러 샘플 속도로 파일 읽기 속도 향상

ctp

Matlab R2015a 사용. fread바이너리 파일에서 센서 데이터를 읽는 데 사용 하고 있습니다. 데이터에는 여러 정밀도가 포함됩니다. 한 신호는 다른 신호보다 5 배 빠른 속도로 샘플링됩니다. 파일은 일련의 배치로 구성되며, 각 배치에는 예를 들어 signal_A의 샘플 1 개와 signal_B의 샘플 5 개가 있습니다.

데이터를 빠르게로드하고 형식을 지정하는 방법에 대한 예제를 봤지만 지금까지 본 솔루션은 단일 샘플링 속도가있는 경우 만 나타내므로 내가 말할 수있는 한 솔루션을 더 간단하게 만듭니다.

내가 피하고 싶은 for것은 꽤 느린 루프를 사용하는 것입니다 . 파일에서 데이터가 정렬되는 방식에 대한 설명과 지금 가지고있는 간단한 코드 예제는 아래를 참조하십시오.

속도를 높이는 방법에 대한 제안이 있습니까?

파일 구조

clear;
fid = fopen('binaryFile.bin','r');
signal_B = [];

numBatches = Inf; % read all
batchSize = 17; % each batch takes up 17 bytes

% PART 1 (everything that is not signal_B)
batchSerialNumber = fread(fid, numBatches, '*uint32', batchSize-4);
fseek(fid, 4, 'bof'); % rewind
signal_A = fread(fid, numBatches, '*uint16', batchSize-2);
fseek(fid, 6, 'bof'); % rewind
misc_info = fread(fid, numBatches, '*uint8', batchSize-1);

% PART 2 (signal_B)
for i = 1:length(batchSerialNumber)
    fseek(fid, ((i-1)*batchSize) + 7, 'bof'); % set position in file, according to batch number (i)
    signal_B = [signal_B; fread(fid, 5, '*int16')]; % read the 5 samples of signal_B in this batch
end
ctp

더 많은 인터넷 검색과 멋진 솔루션이 마침내 나타났습니다 for. -loop를 사용하는 것보다 약 100 배 더 빠릅니다 .

clear;
fid = fopen('binaryFile.bin','r');

numBatches = Inf; % read all
batchSize = 17; % each batch takes up 17 bytes

% PART 1 (everything that is not signal_B)
batchSerialNumber = fread(fid, numBatches, '*uint32', batchSize-4);
fseek(fid, 4, 'bof'); % rewind
signal_A = fread(fid, numBatches, '*uint16', batchSize-2);
fseek(fid, 6, 'bof'); % rewind
misc_info = fread(fid, numBatches, '*uint8', batchSize-1);
fseek(fid, 7, 'bof'); % rewind

% PART 2 (signal_B)
signal_B_line_1 = fread(fid, numBatches, '*int16', batchSize-2);
fseek(fid, 9, 'bof');
signal_B_line_2 = fread(fid, numBatches, '*int16', batchSize-2);
fseek(fid, 11, 'bof');
signal_B_line_3 = fread(fid, numBatches, '*int16', batchSize-2);
fseek(fid, 13, 'bof');
signal_B_line_4 = fread(fid, numBatches, '*int16', batchSize-2);
fseek(fid, 15, 'bof');
signal_B_line_5 = fread(fid, numBatches, '*int16', batchSize-2);

signal_B(length(batchSerialNumber)*5,1) = int16(0);

signal_B(1:5:end,1) = signal_B_line_1;
signal_B(2:5:end,1) = signal_B_line_2;
signal_B(3:5:end,1) = signal_B_line_3;
signal_B(4:5:end,1) = signal_B_line_4;
signal_B(5:5:end,1) = signal_B_line_5;

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

라이브러리를 컴파일하여 컴파일 속도 향상

분류에서Dev

사운드 파일러가 퓨어 데이터에서 샘플 수가 아닌 샘플 속도를 출력하는 이유는 무엇입니까?

분류에서Dev

동일한 버퍼 소스에 여러 샘플 속도 제공 : ffmpeg 필터

분류에서Dev

FileReader로 여러 파일 읽기 및 파일 데이터 배열 가져 오기

분류에서Dev

노드 및 약속을 사용하여 데이터와 파일 이름을 일치시키는 여러 디렉토리의 파일 읽기

분류에서Dev

MATLAB 파일에서 여러 데이터 읽기

분류에서Dev

jQuery 파일 업로드 플러그인, 여러 파일 및 양식 데이터

분류에서Dev

여러 비동기 / 대기 호출의 실행 속도 향상

분류에서Dev

CSS 파일을 줄여 웹 사이트 속도 향상

분류에서Dev

여러 교체 속도 향상

분류에서Dev

여러 교체 속도 향상

분류에서Dev

R : 여러 if 문 속도 향상

분류에서Dev

컴파일러의 프런트 엔드 결과를 재사용하여 여러 구성 / 플랫폼에 대한 C ++ 코드 컴파일 속도 향상

분류에서Dev

SQL : 여러 기준 검색 속도 향상

분류에서Dev

여러 내부 및 외부 조인을 사용하여 쿼리 속도 향상

분류에서Dev

fread를 사용하여 파일에서 구조체로 데이터 읽기

분류에서Dev

여러 데이터 유형으로 Stdin 읽기

분류에서Dev

30,000 개의 csv 파일 읽기 및 작동 속도 향상

분류에서Dev

파일에서 여러 유형 읽기

분류에서Dev

InputStream에서 읽기 및 FileOutputStream으로 쓰기 속도 향상

분류에서Dev

Angular 2에서 Angular 4로-파일 크기 감소 및 속도 향상

분류에서Dev

여러 행으로 변수 및 데이터 레코드가있는 PHP에서 텍스트 파일 읽기

분류에서Dev

주어진 구조로 여러 데이터 유형이있는 이진 파일을 읽는 방법

분류에서Dev

여러 데이터 프레임의 값을 할당하는 루프 속도 향상

분류에서Dev

Matlab에서 여러 유형이있는 CSV 파일을 2D 배열로 가져 오기

분류에서Dev

라이브러리가 다른 동일한 wav 파일에 대해 샘플링 속도가 다른 이유는 무엇입니까?

분류에서Dev

속도 향상 계산에 컴파일러 최적화 사용

분류에서Dev

바이너리 파일을 읽을 때 속도 향상

분류에서Dev

Linux : 샘플 속도는 다르지만 피치는 변경하지 않고 여러 FLAC 오디오 파일을 하나의 파일로 결합하는 방법

Related 관련 기사

  1. 1

    라이브러리를 컴파일하여 컴파일 속도 향상

  2. 2

    사운드 파일러가 퓨어 데이터에서 샘플 수가 아닌 샘플 속도를 출력하는 이유는 무엇입니까?

  3. 3

    동일한 버퍼 소스에 여러 샘플 속도 제공 : ffmpeg 필터

  4. 4

    FileReader로 여러 파일 읽기 및 파일 데이터 배열 가져 오기

  5. 5

    노드 및 약속을 사용하여 데이터와 파일 이름을 일치시키는 여러 디렉토리의 파일 읽기

  6. 6

    MATLAB 파일에서 여러 데이터 읽기

  7. 7

    jQuery 파일 업로드 플러그인, 여러 파일 및 양식 데이터

  8. 8

    여러 비동기 / 대기 호출의 실행 속도 향상

  9. 9

    CSS 파일을 줄여 웹 사이트 속도 향상

  10. 10

    여러 교체 속도 향상

  11. 11

    여러 교체 속도 향상

  12. 12

    R : 여러 if 문 속도 향상

  13. 13

    컴파일러의 프런트 엔드 결과를 재사용하여 여러 구성 / 플랫폼에 대한 C ++ 코드 컴파일 속도 향상

  14. 14

    SQL : 여러 기준 검색 속도 향상

  15. 15

    여러 내부 및 외부 조인을 사용하여 쿼리 속도 향상

  16. 16

    fread를 사용하여 파일에서 구조체로 데이터 읽기

  17. 17

    여러 데이터 유형으로 Stdin 읽기

  18. 18

    30,000 개의 csv 파일 읽기 및 작동 속도 향상

  19. 19

    파일에서 여러 유형 읽기

  20. 20

    InputStream에서 읽기 및 FileOutputStream으로 쓰기 속도 향상

  21. 21

    Angular 2에서 Angular 4로-파일 크기 감소 및 속도 향상

  22. 22

    여러 행으로 변수 및 데이터 레코드가있는 PHP에서 텍스트 파일 읽기

  23. 23

    주어진 구조로 여러 데이터 유형이있는 이진 파일을 읽는 방법

  24. 24

    여러 데이터 프레임의 값을 할당하는 루프 속도 향상

  25. 25

    Matlab에서 여러 유형이있는 CSV 파일을 2D 배열로 가져 오기

  26. 26

    라이브러리가 다른 동일한 wav 파일에 대해 샘플링 속도가 다른 이유는 무엇입니까?

  27. 27

    속도 향상 계산에 컴파일러 최적화 사용

  28. 28

    바이너리 파일을 읽을 때 속도 향상

  29. 29

    Linux : 샘플 속도는 다르지만 피치는 변경하지 않고 여러 FLAC 오디오 파일을 하나의 파일로 결합하는 방법

뜨겁다태그

보관