PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2018/08/14 21:53:28
Name 물키벨
File #1 질문1.jpg (24.1 KB), Download : 34
Subject [질문] [매트랩]매트랩 초보의 간단한 코딩 질문입니다 (수정됨)


예를 들면 y=x^2 의 그래프를 그렸다고 가정 했을때,

1. 특정 x값(여기서는 x=1.84)에 대한 y값을 구하려면 어떻게 코딩해야 하나요?

2.
x값이 행렬로 주어졌을때 (여기서는 x = [0 , 1.2, 1.84, ....])
이때의 y결과값도 같은 크기의 행렬로 나오게 하는 것은 어떤식으로 코딩할수 있나요?

답변 부탁드려요~ 힌트라도 주시면 정말 감사하겠습니다.
-----------------------------------------------------------질문수정------------------------

데이터가 하나 있는데요,
값은 real.x0 (1x1099 double),real.y0 (1x1099 double) 에  저장된 상태입니다.
여기서 이 데이터들을 피팅한후에 그 피팅커브를 이용해서 측정하지 않은 x포인트 다수에 대한 y값들을 얻고 싶은데요.

x=real.x0;
y=real.y0;
xi=5:-0.001:0.2;  %일단 최대한 촘촘하게 피팅하기 위해 0.001로 나눔%
yispl=interp1(x,y,xi,'spline'); %스플라인 방법으로 피팅%
plot(x,y,'o',xi,yispl,'r')

이렇게 하여서 첨부한 그림파일처럼 파란건 실측값, 빨간선은 이것을 x간격이 0.001인 피팅한 커브입니다.
이때 제가 하고싶은건 x가 임의로 정해진 큰 벡터일때 (ex:  1, 2.345, 2,459, 3... )이 x들에 대한 yispl값(피팅커브)을 구하고 싶은 상태입니다


통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
18/08/14 22:32
수정 아이콘
1. 정확히 어떤 질문인지 모르겠는데, 1.84^2를 직접 계산하는 방법밖에는 모르겠네요. 코딩에서는 무한히 많은 x값에 대해서 전부 계산할 수는 없으니까요.. 아니면 눈금을 0.1 단위로 그려서 x = 1.80, 1.90에서의 값을 구한 뒤 interpolation 해야겠네요. 이러면 정확한 값은 아니겠죠.

2. y=zeros(length(x), 1) 이런 식으로 x와 같은 크기의 벡터를 만든 뒤에 y(1)부터 계산하면 될 것 같아요.
물키벨
18/08/14 22:59
수정 아이콘
질문이 부정확한거 같아서 수정했어요..
18/08/15 00:37
수정 아이콘
x와 y의 관계가 explicit하게 정의된 상황이면 자명하게 해당값을 구할수 있는 상황 아닌가요?
물키벨
18/08/15 00:57
수정 아이콘
제가 매트랩 쓴지 며칠 안되는데 말씀하신거처럼 분명 쉽게 구할수 있을텐데 삽질하고 있는거 같아요. 계속 오류가 나서요.
Bluelight
18/08/15 00:39
수정 아이콘
(수정됨) 스플라인 메소드를 잘못 이해하신 것 같은데요.

"촘촘하게 피팅하기 위해" 라는 부분이 틀렸습니다. xi 를 엄청 엉성하게 잡든, 촘촘하게 잡든 피팅결과는 변하지 않습니다. spline함수는 x, y를 이용해서 피팅을 할 뿐이고, 그 결과는 xi가 아닌 x, y에만 의존합니다. x, y를 이용해서 피팅함수를 구한 수, 그 피팅함수에 xi 를 넣었을 때 나올 값들을 가지고 yispl 을 구성할 뿐입니다. xi를 촘촘하게 하면, 화면에 보이는 선이 촘촘해지는거지 피팅이 더 정확해지진 않습니다.

원하는 임의의 벡터를 x_rand 라고 하면, 그냥 yispl = interp1(x,y,x_rand,'spline') 하시면 됩니다.
Bluelight
18/08/15 00:44
수정 아이콘
(수정됨) 지금 정의하신 xi 와 그에 대한 yispl 이 있다고 했을 때, 이 xi의 요소 중에 x0=2.345 라는 값이 존재하고, 그 인덱스를 이용해 해당하는 yispl 값을 찾고싶다면 find 함수를 활용하는 방법이 있습니다.

index = find(xi = 2.345);
y_at_x0 = yispl(index);
물키벨
18/08/15 00:55
수정 아이콘
피드백 정말 감사합니다. 지금 매트랩을 못돌려서 내일 출근하면 해보겠습니다~
물키벨
18/08/15 00:58
수정 아이콘
번외로 혹시 매트랩 어떻게 공부하셨는지 여쭤봐도 될까요?
Bluelight
18/08/15 01:15
수정 아이콘
하다가 안되면 구글에 키워드로 검색해서 관련 함수 찾고, 함수명 찾으면 매트랩에서 도움말(F1) 연 다음에 해당 함수 검색해서 써져있는 설명들 읽고 써보면서 익혔습니다. 요즘엔 한글로도 도움말 잘 나오더라구요.
물키벨
18/08/15 01:17
수정 아이콘
감사합니다
Bluelight
18/08/15 11:41
수정 아이콘
index = find(xi = 2.345)

이 부분

index = find(xi == 2.345)

이렇게 해야 하겠네요 생각해보니
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
123674 [질문] 방음 문제인데 좋은 방법 있을까요? [2] 멍청이1937 18/08/18 1937
123673 [질문] [프로듀스48] 단순히 몇발짝 걷는 워킹 [4] workbee2300 18/08/18 2300
123672 [질문] 해외여행지 추천해주세요! (겨울) [7] 부처1723 18/08/18 1723
123671 [질문] 여러분의 소설 삼국지는 무엇인가요?? [30] Kirby2047 18/08/18 2047
123670 [질문] 이상황은 도로교통법 무슨 위반인가요? [3] The)UnderTaker2185 18/08/17 2185
123669 [질문] 조난 영화 추천해주십시오. [16] 짱짱걸제시카5145 18/08/17 5145
123667 [질문] 프로페시아 복용하시는 분 계신가요.. [11] Spinnn2799 18/08/17 2799
123666 [질문] 유럽여행 숙소 관련 질문입니다. [6] 정휘인2017 18/08/17 2017
123665 [질문] 쌀 추천 부탁 드립니다. [5] 순수한사랑2184 18/08/17 2184
123664 [질문] 뮤탈 엠컨 하시는분 계신가요? [6] 고등어3마리4301 18/08/17 4301
123663 [질문] 몰이사냥+무한파밍하는 모바일게임 있나요?(영상有) [3] 정공법4380 18/08/17 4380
123662 [질문] 롱패딩을 미리 사려는데.. [9] 정의2940 18/08/17 2940
123661 [질문] 일상용 자전거도 성능 차이가 많이 나나요? [14] 먼치킨2220 18/08/17 2220
123659 [질문] 해외에서 프듀 볼 수 있는 방법 있나요?? [3] 완성형폭풍저그1597 18/08/17 1597
123658 [질문] 영상쪽 관련 학원비는 얼마나 되나요? 1perlson1273 18/08/17 1273
123657 [질문] 나눔글은 어디에 써야 하나요? [5] 軽巡神通1799 18/08/17 1799
123656 [질문] 사쿠라의 실력을 어느 정도로 보시나요? [16] 최석준3021 18/08/17 3021
123655 [질문] 컴퓨터(모니터?)가 켜지지 않습니다. 조언 부탁드립니다. [10] sealed2151 18/08/17 2151
123654 [질문] 수영 질문입니다 [10] 늅늅이1857 18/08/17 1857
123653 [질문] 심리상담을 받아보려합니다. [3] 백학1682 18/08/17 1682
123652 [질문] VBA 매크로 실행 후 엑셀이 느려집니다. [5] 하디4460 18/08/17 4460
123651 [질문] 지금시점에서 몬헌 플스 vs PC판 뭘 해야할까요? [19] 힘든일상6093 18/08/17 6093
123650 [질문] 중고 에어컨을 하나 팔려고 하는데요. [6] 오토나시 쿄코2226 18/08/17 2226
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로