R中rdivide的等效函数是什么?在我的情况下,我有一个数值算法A,B和C的矩阵。我需要得x,使得x = C ./(AA')。在matlab中,我可以使用rdivide来完成它。但是我需要在R中这样做。所以在这里给出一个可重现的例子是一些matlab代码。注意det(AA')= 0。 A'是A的转置。
% matlab code
t=6
A = raylrnd(0.05,t,1)+0.09;
B = gallery('randcorr',t);
C = spdiags(A,0,t,t) * B * spdiags(A,0,t,t);
x=C ./(A*A')
#Rcode
install.packages("Runuran","fifer")
library("Runuran")
library("fifer")
t=6
A = as.matrix(urrayleigh(t,0.05)+0.09)
B <- random.correlation (t, ev = runif(t, 0, 1))
C= Diagonal(t,A) %*% B %*% Diagonal(t,A)
答案 0 :(得分:1)
rdivide
中的 matlab
等同于R
中两个矩阵的逐个元素划分。
<强> Matlab的强>
A = [1:3; 4:6; 7:9]
# A =
#
# 1 2 3
# 4 5 6
# 7 8 9
B = [11:13; 14:16; 17:19]
# B =
#
# 11 12 13
# 14 15 16
# 17 18 19
rdivide(A,B)
# ans =
#
# 0.0909 0.1667 0.2308
# 0.2857 0.3333 0.3750
# 0.4118 0.4444 0.4737
<强> - [R 强>
A <- t(matrix(1:9, nrow = 3, ncol = 3))
B <- t(matrix(11:19, nrow = 3, ncol = 3))
A
# [,1] [,2] [,3]
# [1,] 1 2 3
# [2,] 4 5 6
# [3,] 7 8 9
B
# [,1] [,2] [,3]
# [1,] 11 12 13
# [2,] 14 15 16
# [3,] 17 18 19
A/B
# [,1] [,2] [,3]
# [1,] 0.09090909 0.1666667 0.2307692
# [2,] 0.28571429 0.3333333 0.3750000
# [3,] 0.41176471 0.4444444 0.4736842