rSymPy와 Ryacas를 모두 사용하여 R에서 기호 행렬을 적절히 사용하지 못하고 있습니다. Matlab에서 이것은 쉽습니다. R에서 이것을 수행하고 Matlab과 비슷한 출력을 얻는 방법에 대한 제안을 찾고 있습니다. Matlab에서이를 수행하려면 '기호 도구 상자'가 필요합니다.Matlab에서와 같이 R에서 기호 행렬 처리하기
이 예에서는 심볼 전이 확률 행렬 "P"(5 x 5)를 생성하고 요소 P11, P12, ..., P55를 생성하려고합니다. 그런 다음이 행렬을 곱셈에 사용하고 (자체 및 다른 행렬로) 잠재적으로 다른 연산을 수행하려고합니다.
(1) matlab에 - 기호 매트릭스를 생성 -> 확인
P = sym('P%d%d', [5 5])
(1) R - 기호 매트릭스 받기 -> 확인
library(rSymPy)
P<-matrix(nrow=5, ncol=5)
for (i in 1:5){
for (j in 1:5) {
P[i,j]<-paste0(Sym("P"), i, j) # tried Var("P") also
}
}
그때 나는이를 mulitply 할 행렬.
(2) matlab에 - 곱하기 기호 매트릭스 -> 확인
P*P
작품 잘.
(2) R - 곱셈 기호 매트릭스 ->
sympy("P * P")
Need Help Here!
문제가되지 않는다. 다른 많은 시도들도 효과가 없었습니다. 이 작업을 올바르게 수행하는 방법에 대한 제안이 필요합니다. 예를 들어 (2) Matlab에서와 같은 출력을 얻으십시오.
추가 작업 :
(3) matlab에 - 각 요소를 개별적으로 SYM() -> OK 또한
내가 (방법 Sym을에 제안을 요청 것) 행렬 P의 하나의 요소 Matlab에서와 마찬가지로 R에서.
for i = 1:5;
for j = 1:5;
P = sprintf('P%d%d',i,j);
assignin('caller',P,sym(P));
end;
end;
(3) R - Sym을() 별도로 각 요소 - 모두 제안> 문제
Need Help Here!
들으!
이 작동합니다'라이브러리 (Ryacas); yacas ("P : = {{p11, p12}, {p21, p22}}"); yacas ("PrettyForm (P * P)")' –
sympy doc [여기] (http://docs.sympy.org/0.7.2/modules/matrices/expressions.html)에서 시작하여 'rSymPy'에 포장하십시오 ... –