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)

이렇게 해야 하겠네요 생각해보니
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
123560 [질문] 컴퓨터 중고 판매가 적정가격 얼마로 할까요? [6] JIRO2510 18/08/15 2510
123559 [질문] 아시안게임 e스포츠 전체일정 어디서 볼수 있나요? [1] 레가르1451 18/08/15 1451
123558 [질문] 노트북으로 토렌트 돌리시는 분 계신가요? [10] CastorPollux3689 18/08/15 3689
123557 [질문] 왓챠 pc는 완전 기능이 사라진건가요? 카오루3275 18/08/15 3275
123556 [질문] 미국 대학 입학 질문입니다 [10] 파핀폐인2150 18/08/15 2150
123555 [질문] 아이폰 사용자 분들께 질문 합니다. [15] purflower892367 18/08/15 2367
123554 [질문] 일본 패키지 여행장소 추천부탁드립니다 [9] 비빅휴2117 18/08/15 2117
123553 [질문] 원룸 매입 동의에 관한 질문입니다 비상하는로그1041 18/08/15 1041
123552 [질문] 본의 아니게 포맷을 해버렸습니다. 코알라로태어날걸1566 18/08/15 1566
123550 [질문] [LOL] 베이가 장인 도움 필요합니다. [5] 이명헌2112 18/08/15 2112
123549 [질문] 자동차 얼룩제거ㅠㅠ [4] Part.33013 18/08/15 3013
123548 [질문] 마트에서 장 볼 때 유통기한 꼼꼼이 확인 하시나요? [20] 박현준3017 18/08/15 3017
123547 [질문] . [4] 삭제됨1991 18/08/15 1991
123545 [질문] 해운대 당일치기 질문 서쪽으로가자1457 18/08/15 1457
123544 [질문] 갤럭시기어s3 사려고합니다. [3] DogSound-_-*2143 18/08/15 2143
123543 [질문] 수영이 왜이렇게 어려울까요... [15] Demi3184 18/08/15 3184
123542 [질문] USB가 안되는 차에서 음악을 들으려면 어떻게 해야 하나요? [21] 도토리해물전4384 18/08/15 4384
123541 [질문] 루피 - gear2 처럼 타이트한 힙합 곡 없을까요? [4] 파급효과2808 18/08/15 2808
123539 [질문] 갤노트9 예약구매 관련 질문입니다. [4] 이시스2097 18/08/15 2097
123538 [질문] 미국에 경제 흐름을 공부할려면 [1] 밤하늘1672 18/08/14 1672
123537 [질문] 차 한 쪽 바퀴만 올린 상태로 좀 둬도 될까요?? [7] 차라리꽉눌러붙을2315 18/08/14 2315
123536 [질문] 스타1 래더 등급전 질문이요 [3] 피스~2622 18/08/14 2622
123535 [질문] 안드로이드 캡쳐 후 편집 가능한 앱 찾습니다. 행복a2814 18/08/14 2814
목록 이전 다음
댓글

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