Matlab에서 답을 기호 변수 형식으로 반환하려고합니다. I는 I 수신하고 에러를 설명하기 위해 다음 코드 및 기능을 만들어 :Matlab 함수의 답을 Symbol 형식으로 반환하는 방법
clc
clear all
syms L real;
% L = 1 % The code works when I uncomment this line
k1 = [ L, -L;
-L, 2*L]
k2 = [4*L^2, -L;
0, L]
K = GlobalStiffnessMatrix(k1,k2)
M 개의 파일 GlobalStiffnessMatrix.m는 아래와 같다 :
function K = GlobalStiffnessMatrix(k12,k23)
K = zeros(2,2);
K(1,1) = k12(1,1);
K(1,2) = k12(1,2);
K(2,1) = K(1,2);
K(2,2) = k12(2,2) + k23(1,1);
end
I가 다음 오류 수신하고 :
을The following error occurred converting from sym to double: Error using symengine (line 59) DOUBLE cannot convert the input expression into a double array. If the input expression contains a symbolic variable, use VPA.
함수 자체와 시뮬레이션 코드에서 VPA를 사용하려고했지만 여전히 동일한 오류가 발생합니다. 물론 라인 설정을 해제 할 때 L = 1
함수는 정상적으로 작동합니다.
이 함수가 기호 변수로 K
을 반환하도록하려면 어떻게해야합니까?
출력'K'를'0 '을 사용하여 이중 행렬로 초기화하고 있습니다. 그런 다음이 요소 중 하나에 기호 변수를 지정하고 형식이 일치하지 않게하려고합니다. 대신'K = sym ('K', [2,2])' – Wolfie
과 같이'sym '를 사용하여 출력을 초기화하십시오! 그것을 해결해 주셔서 감사합니다! – PatStarks
걱정할 필요없이 전체 답변으로 의견을 추가했습니다. 이 질문을 받아들이도록 수락하십시오. 감사 – Wolfie