link1 = input('Enter length of link1:');
link2 = input('Enter length of link2:');
length1 = link1;length2 = link2;r1_prime = [length1, 0];r2_prime = [length2, 0];t_start = 0.0;t_step = 0.01;t_end = 1.0;t = t_start;theta_1 = 3*t;theta_2 = t;while (t < t_end+t_step) rp1 = trans1(r1_prime, theta_1); rp2 = trans2(r2_prime, theta_2); rP = addition(rp1, rp2); fprintf(fid, '%7.5f %15.6e %15.6e\n', t,rP(1), rP(2)); t = t + t_step;end
함수1function rp1 = trans1(r1_prime, theta_1)A = [cos(theta_1), -sin(theta_1); sin(theta_1), cos(theta_1)];rp1 = A*r1_prime;end
자꾸 이런 오류가 발생하는데 이유가 뭐임???
다음 사용 중 오류가 발생함: *
행렬의 차원이 일치해야 합니다.
오류 발생: trans1 (line 3)
rp1 = A*r1_prime;
오류 발생: Untitled3 (line 18)
rp1 = trans1(r1_prime, theta_1);
link2 = input('Enter length of link2:');
length1 = link1;length2 = link2;r1_prime = [length1, 0];r2_prime = [length2, 0];t_start = 0.0;t_step = 0.01;t_end = 1.0;t = t_start;theta_1 = 3*t;theta_2 = t;while (t < t_end+t_step) rp1 = trans1(r1_prime, theta_1); rp2 = trans2(r2_prime, theta_2); rP = addition(rp1, rp2); fprintf(fid, '%7.5f %15.6e %15.6e\n', t,rP(1), rP(2)); t = t + t_step;end
함수1function rp1 = trans1(r1_prime, theta_1)A = [cos(theta_1), -sin(theta_1); sin(theta_1), cos(theta_1)];rp1 = A*r1_prime;end
자꾸 이런 오류가 발생하는데 이유가 뭐임???
다음 사용 중 오류가 발생함: *
행렬의 차원이 일치해야 합니다.
오류 발생: trans1 (line 3)
rp1 = A*r1_prime;
오류 발생: Untitled3 (line 18)
rp1 = trans1(r1_prime, theta_1);
여기 매트랩 하는 애가 있긴 하냐;? 다꺼먹어서 기억도 안나넴
어디가서물어봐야됨? 진짜미치겠음 아무리고쳐도 오류가뜨니까..
차라리 물리학갤을 가셈..
일단 말그대로 행렬곱 사이즈가 안맞는거 같은데
행렬곱하는 데 행수와 열수가 안맞으니까 그렇지 ㅇㅅㅇ
맞는거같은데..? 왜 안맞다하는지 모르겠어요
보니까 회전변환 하는데 회전변환 행렬은 잘 구했는데 뒤쪽을 2 by 1 으로 줘야지 1 by 2 로 주고 있었구만 ㅇㅅㅇ
죄송하지만 뒤쪽이라는 부분이 정확히 어디인지 모르겠어요.. 2 by 1이나 1by 2랑 지금까지 구별안해도 잘되서 어떤부분을 어떻게바꿔야 할지 감이안잡힙니다
r1_prime = [length1, 0];r2_prime = [length2, 0] 를 r1_prime = [length1; 0];r2_prime = [length2; 0] 로 바꾸삼 ㅇㅅㅇ
아... 와... 이제야 이해가 가네요 감사해용
보니까 회전변환 하는데 회전변환 행렬은 잘 구했는데 뒤쪽을 2 by 1 으로 줘야지 1 by 2 로 주고 있었구만 ㅇㅅㅇ