HOWTO · MATLAB

Matlab에서 CSV 파일 읽기

MATLAB에서 readtable(), readmatrix() 및 readcell() 함수를 사용하여 CSV 파일을 읽을 수 있습니다.

이 페이지의 내용

필요한 결과 형태에 따라 MATLAB의 가져오기 함수를 선택하세요. readtable()는 변수 이름이 지정된 테이블을 만들고, readmatrix()는 숫자 데이터를 행렬로 반환하며, readcell()는 가져온 값을 셀 배열로 반환합니다. 세 함수 모두 CSV 파일 이름을 지정할 수 있고 원하는 범위만 읽을 수도 있습니다. 아래 예제에서는 각 결과 형태를 언제 사용하면 좋은지, detectImportOptions()로 가져오기 설정을 어떻게 확인하는지 설명합니다.

readtable()로 CSV 데이터를 테이블로 읽기

이름과 측정값처럼 열마다 데이터 유형이 다를 수 있는 표 형식의 데이터에는 readtable()를 사용하세요. 기본적으로 첫 번째 행을 변수 이름으로 사용합니다. 파일에 헤더 행이 없으면 MATLAB이 기본 변수 이름을 지정합니다. 첫 번째 데이터 행을 헤더로 취급하지 않으려면 ReadVariableNames를 false로 설정하세요.

숫자 CSV 데이터는 헤더 행을 건너뛴 뒤 GNU Octave에서 읽을 수 있습니다. 변경할 수 없는 예제의 코드와 표시되는 레이블 또는 출력은 영어로 남아 있습니다.

이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.

csvPath = [tempname(), '.csv'];
file = fopen(csvPath, 'w');
fprintf(file, 'year,sales\n2024,18\n2025,23\n');
fclose(file);
values = dlmread(csvPath, ',', 1, 0);
disp(values);
delete(csvPath);

MATLAB에서 같은 파일을 테이블로 가져오려면 data = readtable('sales.csv')를 사용하세요. data(1:5, 1:6)으로 결과 테이블의 일부를 확인할 수 있습니다. 이 인덱싱은 행 5개와 열 6개를 선택합니다. 파일의 특정 영역만 가져오려면 data = readtable('sales.csv', 'Range', 'A1:C7')처럼 범위를 지정하세요. 범위에 읽으려는 행과 열이 포함되어 있는지 확인하세요.

파일 구조나 열의 데이터 유형이 명확하지 않다면 opts = detectImportOptions('sales.csv')로 감지된 가져오기 설정을 확인한 다음, 읽기 전에 옵션을 조정하세요. 예를 들어 첫 번째 행이 헤더가 아니라 데이터라면 opts.ReadVariableNames = false로 설정하고 옵션을 readtable('sales.csv', opts)에 전달하세요. 지원되는 옵션은 MathWorks의 readtable() 참고 문서에서 확인할 수 있습니다.

readmatrix()로 숫자 CSV 데이터를 행렬로 읽기

필요한 값이 숫자이고 계산에 일반 행렬을 사용하는 편이 편리하다면 readmatrix()를 사용하세요. 예를 들어 measurements = readmatrix('measurements.csv')는 숫자 데이터를 가져옵니다. 파일에 헤더 행이 있으면 MATLAB이 파일을 바탕으로 가져오기 세부 사항을 감지하고 처리합니다. 동작을 직접 제어해야 한다면 결과를 확인하고 가져오기 옵션을 사용하세요.

특정 영역을 읽으려면 Range 이름-값 인수를 사용하세요. 예를 들어 measurements = readmatrix('measurements.csv', 'Range', 'B2:D8')처럼 지정할 수 있습니다. 범위는 가져올 행과 열을 제한하며, 테이블 인덱싱처럼 이름이 지정된 변수를 선택하지는 않습니다. MATLAB이 파일을 해석하는 방식을 확인하거나 조정하려면 detectImportOptions('measurements.csv')를 호출하고 반환된 옵션 객체를 readmatrix에 전달하세요. 자세한 내용은 MathWorks의 readmatrix() 참고 문서를 확인하세요.

readcell()로 CSV 데이터를 셀 배열로 읽기

CSV에 텍스트와 숫자가 섞여 있고 가져온 항목을 하나의 셀 배열에 담으려면 readcell()를 사용하세요. 예를 들어 values = readcell('inventory.csv')는 파일을 셀에 읽어 들여 각 항목의 가져온 데이터 유형을 유지합니다.

values = readcell('inventory.csv', 'Range', 'A1:C10')처럼 범위를 지정해 특정 영역만 가져올 수 있습니다. 선택 범위에는 스프레드시트 형식의 행과 열 참조를 사용합니다. 파일의 가져오기 동작을 조정해야 한다면 opts = detectImportOptions('inventory.csv')로 설정을 확인한 뒤 옵션 객체를 readcell('inventory.csv', opts)에 전달하세요. 사용할 수 있는 옵션은 가져오기 함수에 따라 다르므로 변경하기 전에 MathWorks의 readcell() 참고 문서를 확인하세요.