load_mesh

Data I/O 중심의 Octave 학습 예제

course/basic/load_mesh.m

코드 인덱스로 돌아가기

카테고리

Course Basic

학습 소스 그룹

코드 길이

31

lines

작성자

-

날짜 정보 없음

패키지

none

pkg load 기준

함수 시그니처

function [vert, face] = load_mesh(filename)

전체 코드

전체 코드를 복사해서 Octave에서 바로 실행할 수 있습니다.

function [vert, face] = load_mesh(filename)
    # read mesh
    # intput:
    # filename
    # output: 
    # vertex x, y, z
    # face v1, v2, v3

    fid = fopen(filename, 'r');
    vert = [];
    face = [];
    
    while ~feof(fid)
        line = strtrim(fgetl(fid));
        
        if isempty(line) || startsWith(line, '#')
            continue;
        end
        
        tokens = strsplit(line);
        
        if strcmp(tokens{1}, 'v')
            vert(end+1, :) = str2double(tokens(2:4));
        elseif strcmp(tokens{1}, 'f')
            face(end+1, :) = str2double(tokens(2:4));
        end
    end
    
    fclose(fid);
end

코드 해설

목적

Data I/O 중심의 Octave 학습 예제

입력

  • 파라미터: filename

출력

  • 반환값: vert
  • 반환값: face

실행 흐름

  1. 데이터 준비

핵심 함수/주제

str2doublestrcmptokensfacefclosefeoffgetlfopen

실습 과제

  • 핵심 함수 str2double의 인자를 한 가지 바꿔 결과 변화를 기록해보세요.

학습 팁

같은 카테고리의 다른 코드