Octave Atelier

코드와 해설을 함께 읽는 학습 문서

Code Detail

load_mesh

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

course/basic/load_mesh.m

목록으로

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

카테고리

Course Basic

course-basic

코드 길이

31

lines

작성자

-

날짜 정보 없음

패키지

none

pkg load

함수 시그니처

function [vert, face] = load_mesh(filename)

전체 코드

31 lines

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. 데이터 준비

핵심 함수

  • str2double
  • strcmp
  • tokens
  • face
  • fclose
  • feof
  • fgetl
  • fopen

실습 과제

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

같은 카테고리 코드

이전 코드 horizontal 다음 코드 load_obj