제목 | 답변완료 MATLAB_ADVANCED_1_15강 질문 | ||
---|---|---|---|
질문유형 | 강좌내용 | 교수님 | 권준표 |
과목 | 매트랩 | 강좌명 | |
작성자 | 이*민 (k*****m) | 등록일 | 2021-10-14 22:11 |
안녕하세요 이번에 MATLAB_ADVANCED_1_15강을 수강하는 도중에 질문이 생겨서 글 올립니다.
강의중 한가지 색만을 표현하는 flat방식과 다른 방식으로 여러 색을 조각면에 표현하는 방식을 배우는 과정(p475)에서 --------------------------------------------------------------------------------------------------- clear, clc ,close all peaks(20) axis off h = findobj(`Type`,`surface`); set(h,`facecolor`,[0.5 0.5 0.5],`EdgeColor`,[0.5 0.5 0.5]) x= [3 -3 3]; y= [-3 3 -3]; z= [8 8 8]; cols = [ 1 1 1; 1 1 0; 0 1 0]; for i = length(x) light(`pos`,[x(i), y(i), z(i)],`color`,cols(i,:))
end ----------------------------------------------------------------------------------------------------- for문이 이해가 되지 않습니다.
이전에는 예를들어 for i = 0:10과 같은 `실행하는 범위`를 입력하여 그 범위내에서 순차적으로 시행되는 형식으로 활용 하였는데
이번에는 i를 벡터x의 가장 큰 배열 차원의 길이인 3으로 지정한 상태로 돌리는 과정에, i가 1,2,3순서로 진행되는 것인지 궁금해서 다음과 같이 작성 해 보니 ---------------------------------------------------------------------------------------------------- clear, clc ,close all peaks(20) %mesh가 20개로 됨 axis off h = findobj(`Type`,`surface`); set(h,`facecolor`,[0.5 0.5 0.5],`EdgeColor`,[0.5 0.5 0.5]) x= [3 -3 3]; y= [-3 3 -3]; z= [8 8 8]; cols = [ 1 1 1; 1 1 0; 0 1 0];
light(`pos`,[x(3), y(3), z(3)],`color`,cols(3,:)) ------------------------------------------------------------------------------------------------------ for 문의 형식에서 i가 3일때 값들만 light형식에 같은 형식으로 넣어봤더니 맨 위에 작성했던 결과와 같은 색의 그래프가 나왔습니다.
for i = length(x)에서 i = 3일때만 출력이 되는것인지 궁금합니다.(i=1,i=2일때의 색들의 겹쳐지지 않는지) 그렇다면 length(x)대신에 3을 넣었어도 되는 것인지도 궁금합니다.
#권준표 #매트랩 #for문 #매트랩질문
답변 완료된 질문과 답변은 수정 및 삭제가 불가합니다. |
- 댓글
- 0
for i=1:length(x)
인데 1부터라는 말을 안 쓰셔서 green color만 나온 것입니다.
cols = [1 1 1; 1 1 0; 0 1 0];
을 차례대로 반영해주기 위해서는
for문에서 i값을 1부터 차례대로 넣어줘야 하고
그러면 위와 같은 그림으로 잘 나올 겁니다.
- 2021-10-21
- 2024-12-12 수정